Java知识点总结

时间:2024.5.2

Java总结

1. 命名规则

a) 必须使用字母,数字,_, $组成

b) 不能以数字开头

c) 不能使用关键字或保留字

1.1 类名:所有单词首字母大写,其余小写(HelloWorld)

1.2 变量:从第二个单词开始首字母大写,其余小写,使用名词(carColor)

1.3 方法:从第二个单词开始首字母大写,其余小写,使用动词(qiChuang)

1.4 包名:所有字母小写

1.5 常量:所有字母大写,单词之间用_隔开

2.基本数据类型

2.1 数值型

2.1.1 整型

字节型Byte -128~127 占1个字节

短整型short -32768 ~ 32767 占2个字节 整型int -2147483648 ~ 2147483647 占4个字节 长整型long -9223372036854775808 ~ 9223372036854775807

占8个字节 声明时可以带L/l

2.2 浮点型

2.2.1 float 浮点型 占4个字节 赋值时必须带F/f后缀

2.2.2 double 双精度浮点型 占8个字节 可以带D/d后缀

2.3 布尔型 boolean (true|false)

2.4 字符型 char 占2个字节 取值范围 '\u0000' ~ '\uffff' char必须被单引号表示,并且必须只能表示一个字符。 java中的字符型采用Unicode字符集

2.5引用数据类型类,接口,数组

2.6 类型转换

自动类型转换/隐式转换: 小类型到大类型属于自动类型转换 强制类型转换/显示转换: 大类型到小类型属于强制类型转换 byte 或short的运算结果必须是int

char 和数值型可以互转

3. 数组

表示一组相同类型的数据集合。长度是固定的,类型固定。在内存中占用一块连续的空间。

int[] intArray = new int[10];

int[] intArray = new int[]{10,20,30,40,50,60};

int[] intArray1 = {10,20,30,40,50,60};

int[] intArray2;

intArray2 = new int[]{10,20,30,40,50,60};

通过length属性来获取长度,通过下标访问元素(intArray[1]),如果超出范围则抛出异常:java.lang.ArrayIndexOutOfBoundsException

4. 面向对象的特性

4.1 封装

将属性或方法通过private关键字修饰为私有的,只能由自己访问,提供一个或多个公开的方法给外部访问,可以在方法中添加自己的逻辑判断。 隐藏类的实现细节,达到部分的代码安全,实现数据的安全准确性。

4.2 继承

从父类中获得其属性和方法的一种机制,减少重复代码。通过extends关键字来实现。

* java只支持单继承。一个类只能有一个父类。但是一个父类可以有多个子类。

* 在java中所有类都是直接或者间接的继承于java.lang.Object

4.2.1 方法重写(Override):

在子类中声明一个跟父类中一样的方法覆盖从父类继承的该方法,达到扩展的目的。

1. 方法名,参数列表,返回值类型必须跟父类中的一致

2. 访问权限不能比父类中的更严格

3. 不能抛出比父类中更大的异常

4.2.2 方法重载(Overload):

在同一个类中实现多个相同名称的方法。达到在不一样的前提条件下实现相同的功能。

1. 方法名必须相同

2. 参数列表必须不一样(个数,类型,顺序)

*** 跟返回值类型无关

4.3 多态

当父类引用指向子类对象时就是多态。

Person p = new ChinesePerson();

** 如果子类中重写了方法,执行时会执行子类中的方法

如果子类中额外声明了方法,将不能被执行

对象造型(Casting)将父类类型对象转成子类类型对象(如果对象是用父类类型new出来的则会报错)

ChinesePerson cp = (ChinesePerson) p;

对象造型之前可以通过instanceof关键字判断对象是否是将要造型的类型。

if(p instanceof ChinesePerson) {

ChinesePerson cp = (ChinesePerson) p;

cp.sing();

}

5.java的内存分配

5.1 栈

效率高,空间小

通常用于保存局部空间的变量和引用

5.2 堆

效率低,空间大

通常用于保存new出来的对象(也包含数组对象)

6. 构造方法

用于创建对象时对对象进行初始化的方法,跟类名一致,没有返回值位。new

对象时会被执行。

* 每个类都必须拥有至少一个构造法

* 如果没有显示定义构造方法,虚拟机会自动给该类提供一个无参的默认构造方法

* 一旦显示定义构造方法,虚拟机将不会提供默认构造方法

* 构造方法可以重载

* 构造方法不能被继承,所以也不能被重写

7. this和super

7.1 表示对象

this表示当前类的当前对象

super表示父类对象

7.2 用于调用其他构造方法

this用于调用当前类的其他构造方法*必须在第一行

super用于调用父类构造方法*必须在第一行

** 子类中的构造方法必须直接或间接调用父类的构造方法

如果没有显示调用则会执行super();

8. 变量初始化(成员变量,初始化数组时)

byte 0

short 0

int 0

long 0L

float 0.0F

double 0.0D

boolean false

char '\u0000'

引用数据类型 null

9. 对象创建过程

9.1 在栈中为引用创建空间

9.2 当执行new的时候在堆中开辟空间并创建对象

9.3 对对象进行属性初始化

9.4 执行构造方法进行再次初始化

9.5 将堆中对象的首地址赋值给栈中的引用空间

10. 包

java中用于解决命名冲突,以及管理众多类的机制。 10.1 在类的第一行有效代码处编写

package xxx.xxx.xx;

10.2 引入其他包中的类

import xxx.xxx.xx.Xxx;

10.3引入整个包下的所有类

import xxx.xxx.xx.*;

10.4编译和执行包下的类(命令位置必须是在项目起始目录) e:/xxx -> javac ./com/direct/MainClass.java

e:/xxx -> java com.direct.MainClass

11. 抽象类

不能被实例化的类(不能被创建对象),用abstract关键字来修饰。 * 抽象方法:没有方法体的虚方法。用abstract修饰。

* 包含抽象方法的类必须是抽象类。

* 抽象类也可以不包含抽象方法。

* 抽象类也可以包含非抽象方法。

* 子类必须重写实现父类中的抽象方法。不然也必须定义为抽象类。

12. 接口

完全抽象体,只能包含抽象方法和常量。用interface关键字来修饰。 ** 接口中的方法必须是public abstract的

** 接口可以继承接口,可以多继承

** 类可以实现多个接口(用implements来实现)

** 接口没有构造方法

13. final

修饰类: 最终类,不能被继承。

修饰方法:最终方法,不能被重写

修饰变量:最终变量,常量,一旦赋值不能被改变

14. static

方法:静态方法,属于类的方法,使用类名.方法名()来访问

属性:静态属性,属于类的变量,使用类名.变量名来访问。每一个类只有一份该对象。(跟对象无关)

在静态方法中不能访问非静态方法和属性以及使用this和super关键字。 代码块:静态代码块 static {...} 当类被加载时会被执行。因为每个类只

会加载一次,所以该代码库只会执行一次。

15. 单例模式

一个类只允许被创建一个对象。

三要素

15.1 私有化构造方法

15.2 创建静态的私有的本类对象(单例对象)

15.3 提供公开的静态方法供外界获取单例对象

16. 访问权限

public protected friendly/default/缺省 private 当前类 √ √ √ √ 同包 √ √ √ × 子类 √ √ × × 其他 √ × × ×

16. Object类

toString: 用于将当前对象转成String

*默认Object中的实现为return getClass().getName() + "@" + Integer.toHexString(hashCode());

getClass:获取对象所属类

equals: 提供用于比较引用数据类型是否相等的方法,必须在类中重写才有效。

hashCode: 唯一区分每个对象的hash码

17. 可变字符串

因为String被设计为final并且其底层采用常量字符数组来表示,所以String对象中的内容不能更改。当需要做大量字符串连接时java会创建大量无用对象占用内存。

可以使用StringBuffer或StringBuilder这样的可变字符串来实现字符串的连接。

StringBuilder buffer = new StringBuilder("zhangsan");

buffer.append(",lisi");

buffer.append(",wangwu");

buffer.append(",zhaoliu");

String str1 = buffer.toString();

StringBuffer和StringBuilder

StringBuffer jdk1.0时产生的,重量级,线程安全的,效率低

StringBuilder jdk1.5时产生,轻量级,非线程安全的,效率高

18 GC(Garbage Collection)垃圾回收机制

垃圾回收机制是java虚拟机提供的自动释放无用对象的内存空间的机制。 当对象不再被引用时,就视为垃圾对象,就有可能会被回收。 自动运行,在程序中无法干预。可以建议,但不一定被采纳。 // 建议虚拟机进行垃圾回收,但虚拟机不一定采纳

System.gc();

/**

* 当垃圾回收器将要回收该对象时被调用

* 该方法只会被调用一次

*

* 由Object类定义的方法,java虚拟机自动调用,程序中只需要重写即可 */

protected void finalize() throws Throwable {

System.out.println("被回收时执行");

}

19. 日期时间处理

19.1 Date表示时间类型

// 创建指定时间对象

Date d = new Date(1000);

// 创建当前时间对象(等同于new Date(System.currentTimeMillis())) Date d = new Date();

// 获取时间对象表示的毫秒数

long ms = d.getTime()

19.2 Calendar日历处理

// 获取日历对象,默认日历翻到当前时间

Calendar c = Calendar.getInstance();

c.setTime(new Date(1000)); // 翻到19xx年1月1日 0时0分1秒处 也可以写为: c.setTimeInMillis(1000);

//常量

Calendar.YEAR

Calendar.MONTH // 0 - 11

Calendar.DATE

Calendar.HOUR_OF_DAY

Calendar.MINUTE

Calendar.SECOND

Calendar.MILLISECOND

Calendar.DAY_OF_WEEK // 1-7 SUNDAY - SATURDAY Calendar.WEEK_OF_MONTH

Calendar.WEEK_OF_YEAR

// get 方法 获取对应字段的值

int year = c.get(Calendar.YEAR); // 获取年

int month = c.get(Calendar.MONTH); // 获取月 0 - 11

// set 方法 设置字段值

c.set(Calendar.MONTH, 11);

// add 方法 在当前时间上的特定字段上翻动

c.add(Calendar.DATE, -3);

// roll方法 在当前时间上的特定字段上翻动 不影响其他字段 c.roll(Calendar.DATE, -1);

// 翻到本月的最后一天

c.set(Calendar.DATE, 1);

c.roll(Calendar.DATE, -1);

19.3 SimpleDateFormat日期和字符串互转工具类

// 创建格式化对象

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat sdf1 = new SimpleDateFormat();

sdf.applyPattern("yyyy年MM月dd日 HH时mm分ss秒 E");

// 将时间对象转成制定格式字符串

String str = sdf.format(new Date());

// 将制定格式字符串转成时间对象

Date d = sdf.parse(ds);

20. 异常

程序运行中出现的错误。会打断程序正常执行。是java中提供的一种错误提

示和处理的机制。

20.1 异常分类

错误(ERROR):通常指不是由程序造成并且在程序中不能处理或避免的错误。比如:内存溢出,Java虚拟机出错等

异常(Exception):通常指由于程序代码不严谨造成的可以避免的错误或在程序中可以预先处理的错误。

20.2 抛出异常

通过throw关键字抛出异常

throw new IndexOutOfBoundsException();

通过throws关键字在方法上标注有可能会发生的异常

20.3 异常处理

try {

... // 尝试执行可能会发生异常的代码块

} catch(...) { // 捕捉try块中发生的异常并处理

...

} catch(...) {

...

} catch(...) {

...

} finally { // 必须执行块,无论try中是否发生异常,该块都会被执行,即使try中有return也会在return之前被执行

...

}

...

*** 多重catch时父类异常必须写到子类之后。

20.4 自定义异常

只需继承Exception或RuntimeException即可实现自定义异常

21.集合(Collection)/ 容器(Container)

集合结构中的根接口,定义集合的基本方法

(add,addAll,remove,contains,clear,iterate...等)

21.1 List(有序可重复)

有序集合,会记录存放到容器中的元素的顺序,并且可以按索引获取对应的元素。允许重复元素

21.1.1 ArrayList

底层采用数组来实现,

按下标查找数据效率高,

需要在内存中开辟连续空间来存储,

需要扩容和缩容

在中间插入和删除数据时会导致其后的所有元素移动,所以中间操作效率低

非线程安全的,效率高

21.1.2 LinkedList

底层采用双向链表来实现,

按下标查找数据效率低,

不需要在内存中开辟连续空间来存储,

在中间插入和删除数据时效率高

非线程安全的,效率高

21.1.3 Vector

JDK1.0时实现的可变数组,底层采用数组来实现,跟ArrayList的特点相似

线程安全的,效率低

21.1.4Stack 数据结构栈的实现(FILO)

21.2 Set(无序不可重复)

无序集合,不会记录存放顺序,不能按索引获取元素,不允许重复元素。

21.2.1HashSet

采用hash表实现的不可重复的set,要求被添加的元素类重写hashCode和equals方法

当被加入的对象已经存在时就不会再次添加到set中

21.2.2 SortedSet

实现了排序的set,要求被排序对象必须实现Comparable接口或者必须传入实现了Comparator接口的比较器来实现对象的比较 21.2.3 TreeSet(排序set的实现类)

22.Map(jdk1.2)

键值对集合,key不能重复。

22.1 HashMap(jdk1.2)

基于hash表实现的键值对集合

轻量级,非线程安全的,效率高

允许null作为键或值

22.2 Hashtable(jdk1.0,继承Dictionary来实现,jdk1.2之后也实现了Map接口)

也是基于hash表实现的键值对集合

重量级,线程安全的,效率低

不允许null作为键和值

22.3 TreeMap

基于红黑树实现的排序的map

Properties

表示了一个持久的属性集(可保存在流中或从流中加载) ** 两个对象相等一定要有相同的hashCode

23. List的三种迭代方

/*

* 遍历list方式一:

*/

for(int i=0;i<list.size();i++) {

Object v = list.get(i);

System.out.println(v);

}

/*

* 遍历list方式二:

*/

for(Object o : list) { System.out.println(o); }

/*

* 遍历list方式三:

* 迭代器模式,迭代子 */

Iterator it = list.iterator(); while(it.hasNext()) { Object o = it.next(); System.out.println(o); }

24. Set的迭代方式:

/*

* 遍历list方式二:

*/

for(Object o : set) {

System.out.println(o);

}

/*

* 遍历list方式三:

* 迭代器模式,迭代子

*/

Iterator it = set.iterator();

while(it.hasNext()) {

Object o = it.next();

System.out.println(o);

}

25. Map的迭代方式

// map中的键的set

Set ks = map.keySet();

for(Object key : ks) {

System.out.println(key + ":" + map.get(key)); }

// map中的值的集合

Collection values = map.values();

for(Object v : values) {

System.out.println(v);

}

// 获取map中的键值对为set集合

Set entrys = map.entrySet();

for(Object o : entrys) {

Entry e = (Entry) o;

System.out.println(e.getKey() + ":" + e.getValue()); }

26. Collections

由jdk提供的用于操作Collection的工具类,其中包含了大量的工具方法(如:sort,reverse,max,min等)

27. Arrays

由jdk提供的用于操作数组的工具类,其中包含了大量的工具方法(如:sort,fill,toString,equals, copyOf,binarySearch等)

28. File

boolean canExecute()

测试应用程序是否可以执行此抽象路径名表示的文件。

boolean canRead()

测试应用程序是否可以读取此抽象路径名表示的文件。 boolean canWrite()

测试应用程序是否可以修改此抽象路径名表示的文件。

int compareTo(File pathname)

按字母顺序比较两个抽象路径名。

boolean createNewFile()

当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

boolean delete()

删除此抽象路径名表示的文件或目录。

boolean exists()

测试此抽象路径名表示的文件或目录是否存在。

String getName()

返回由此抽象路径名表示的文件或目录的名称。

String getParent()

返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。

File getParentFile()

返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。

String getPath()

将此抽象路径名转换为一个路径名字符串。

boolean isDirectory()

测试此抽象路径名表示的文件是否是一个目录。

boolean isFile()

测试此抽象路径名表示的文件是否是一个标准文件。 boolean isHidden()

测试此抽象路径名指定的文件是否是一个隐藏文件。 long lastModified()

返回此抽象路径名表示的文件最后一次被修改的时间。 long length()

返回由此抽象路径名表示的文件的长度。

String[] list()

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。

String[] list(FilenameFilter filter)

返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。

File[] listFiles()

返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。

File[] listFiles(FileFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

File[] listFiles(FilenameFilter filter)

返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。

static File[] listRoots()

列出可用的文件系统根。

boolean mkdir()

创建此抽象路径名指定的目录。

boolean mkdirs()

创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 boolean renameTo(File dest)

重新命名此抽象路径名表示的文件。

boolean setExecutable(boolean executable)

设置此抽象路径名所有者执行权限的一个便捷方法。

boolean setLastModified(long time)

设置此抽象路径名指定的文件或目录的最后一次修改时间。 boolean setReadable(boolean readable)

设置此抽象路径名所有者读权限的一个便捷方法。

boolean setReadOnly()

标记此抽象路径名指定的文件或目录,从而只能对其进行读操作。 boolean setWritable(boolean writable)

设置此抽象路径名所有者写权限的一个便捷方法。

29. I/O流 (In/Out Input/Output InputStream/OutputStream)

29.1 按方向划分:

输入流: InputStream,Reader

输出流: OutputStream,Writer

29.2 按操作数据类型划分:

字节流: InputStream,OutputStream

字符流: Reader, Writer

29.4 InputStream

字节输入流的超类

(源流)

FileInputStream

文件输入流

int read(): 从流中读取下一个字节

int read(byte[] buffer): 从流中读取buffer.length个字节到buffer数组中.返回读取到的长度,如果没读到数据则返回-1

ByteArrayInputStream

针对内存中的字节数组的输入流 |

(装饰流)

ObjectInputStream

对象输入流,从其他源流中读取由ObjectOutputStream已经写入好的对象

Object readObject(): 从流中读取一个对象

29.5 OutputStream

字节输出流 |

(源流)

FileOutputStream

文件输出流

void write(int data): 将一个字节的data数据写到流中

void write(byte[] buffer, int offset, int length): 将buffer中的数据从offset处开始写入length个到流中

ByteArrayOutputStream

针对内存中的字节数组的输出流(通常用于临时保存数据到内存中) (装饰流)

ObjectOutputStream

对象输出流,将对象写入到其他源流中,供ObjectInputStream读取 void writeObject(): 向流中写入一个对象 |

29.6 Writer

FileWriter

BufferedWriter

29.7 Reader

FileReader

BufferedReader

29.8 适配器流(将字节流转换为字符流)

InputStreamReader

OutputStreamWriter

BufferedReader br = new BufferedReader(new

InputStreamReader(fis));

BufferedWriter bw = new BufferedWriter(new

OutputStreamWriter(fos));

30. 对象克隆

30.1 浅克隆

由JDK提供的API实现,只会克隆当前对象,不会克隆其关联对象。效率高。

30.1.1 必须实现java.lang.Cloneable

30.1.2 必须重写clone方法(**必须在clone方法中调用super.clone()) 30.2 深克隆

由对象流将对象序列化到内存或文件之后再读取出来成为新对象,会克隆整个对象及所有关联对象。效率低。

** 将对象写入到硬盘或内存以及在网络上传输等过程称之为序列化,被序列化的对象必须实现了Serializable接口,否则会抛出

java.io.NotSerializableException

** 对象被序列化时不会讲trnsient的属性序列化.

*** 使用完流之后必须关闭.需要将关闭动作在finally中完成(关闭之前最好判断被关闭流是否为空)

31. 多线程

31.1 什么是进程?

正在运行中的程序。

31.2 什么是线程?

进程中的一个执行单元,一个进程中至少包含一个线程。

线程不能单独存在,必须在某个进程中。

31.3 什么是多线程?

一个进程中有多个执行单元,可以同时完成不同的操作。

32. 实现多线程

32.1 继承Thread类实现,重写run方法。

32.2 实现Runnable接口实现

*** 启动线程必须是用start

33. 停止线程

*** 不要使用Thread提供的stop方法来实现停止线程

*** 通过提供公开的方法来更改执行标志的方式来让线程中的代码完成执行,以达到来停止线程的目的。

34. 常用方法

long getId(): 获取线程的id(id是由jvm自动分配)

void setName(): 设置线程的名称

String getName(): 获取线程的名称

void setPriority(): 设置优先级1(MIN_PRIORITY)~10(MAX_PRIORITY) 默认为5(NORM_PRIORITY)

int getPriotiry(): 获取线程的优先级值

void join(): 等待指定线程执行完成

static void currentThread(): 获取当前执行的线程对象

static void sleep(): 让当前线程休眠(暂停执行)指定毫秒数

static void yield(): 让当前正在执行的线程变回可运行状态,CPU重新选择线程执行(有可能还会选择到该线程)

35. 线程同步

synchronized

synchronized块

让多个线程使用同一个锁资源,必须得到锁资源的线程才能执行,其他线程必须等待该线程执行完之后释放锁资源之后才能获取锁并执行 synchronized方法

在方法上用synchronized修饰,当一个线程在执行对象的同步方

法时,其他线程将不能执行该对象的任意同步方法,但可以执行非同步方法 **如果是静态方法,则所有静态方法使用的是同一把锁,跟普通方法互不影响

Lock

36. wait notify

wait: 让当前正在使用该对象的线程进入等待状态,进入等待状态之后必须被notify或notifyAll唤醒

notify: 随机唤醒一个正在当前对象上等待的线程

notifyAll: 唤醒所有在当前对象上等待的线程

37. 网络

37.1 TCP

可靠,安全。需要建立和断开连接。保证数据的准确和安全性。效率低。传输大小无限制。

客户端:

Socket s = new Socket("localhost", 9527);

// 获取输入输出流

InputStream in = s.getInputStream();

OutputStream out = s.getOutputStream();

// 装饰为字符流

BufferedReader br = new BufferedReader(new

InputStreamReader(in));

BufferedWriter bw = new BufferedWriter(new

OutputStreamWriter(out));

服务器端:

ServerSocket ss = new ServerSocket(9527);

// 接受客户端的连接请求

Socket s = ss.accept();

// 获取输入输出流

InputStream in = s.getInputStream();

OutputStream out = s.getOutputStream();

// 装饰为字符流

BufferedReader br = new BufferedReader(new

InputStreamReader(in));

BufferedWriter bw = new BufferedWriter(new

OutputStreamWriter(out));

37.2 UDP

不可靠,不安全。不需要建立和断开连接。不能保证数据的准确和安全性。效率高。每次传输数据最多64K。

// 数据报套接字

DatagramSocket

// 数据报

DatagramPacket

// 发送消息

ds.send(dp);

// 接收消息

ds.receive(dp);

38. 布局管理器

FlowLayout: 流式布局

CardLayout: 卡片布局

BorderLayout: 边框布局

GrideLayout: 网格布局

null: 绝对布局

39. 内部类

声明在其他类内部的类。内部类可以访问外部类的属性和方法。 39.1 普通内部类

直接定义在类中

*在内部类中访问外部类对象通过外部类名.this (OuterClass.this) 在其他类中创建内部类对象必须使用外部类对象来创建

// 在其他类中创建普通内部类对象

OuterClass oc = new OuterClass();

OuterClass.InnerClass ic = oc.new InnerClass();

39.2 局部内部类

定义在局部空间,如方法

局部内部类只能在局部空间中使用,局部内部类访问局部变量时,该变量必须是final的

39.3 静态内部类

定义在类中用static修饰的类

只能使用外部类的静态资源。

在其他类中可以直接创建对象

StaticInnerClass.StaticClass sc = new

StaticInnerClass.StaticClass();

39.4 匿名内部类

在声明时通过实现接口或继承类的方式实现的没有显示定义类名的内部类。

** 必须继承一个类或实现一个接口(不能同时实现多个接口)。 ** 必须只能创建一个对象。

匿名内部类分为普通匿名内部类、局部匿名内部类和静态匿名内部类。

更多相关推荐:
《Java知识点总结系列》第三章——程序的流程控制篇

内容预览顺序流程分支流程循环流程顺序流程以前的程序都是顺序流程,这里略过。分支流程1.if语句a)格式:if(布尔表达式){语句内容语句内容}b)示例代码inta=10;intb=SystemIn.nextIn…

JAVA知识点总结

JAVA知识点总结一1Java中一个char类型可以存放一个汉字吗?为什么?可以。因为JVM的最小单位是两个字节,而java中以unicode存放汉字了,unicode占用了两个字节。2Java中实现多线程的方…

java知识点总结

Java程序设计基础知识点总结1类首字母大写如果一个类名由多个单词构成那么每个单词的首字母都大写中间不使用任何的连接符比如Person类MemberTest类2方法首字母小写如果一个方法由多个单词构成那么第一个...

java各知识点详细总结

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java基础知识总结(超级经典)1

Java基础知识总结写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技术有什么...

java知识点总结

目录目录基础篇一JDK常用的包二Get和Post的区别三Java多态的具体体现四StringBufferStringBuilderString区别五Hashtable与HashMap的区别六九大隐式对象七For...

java知识点总结

目录目录基础篇一JDK常用的包二Get和Post的区别三Java多态的具体体现六九大隐式对象七Forword请求转发与Redirect重定向八JQurey总结九XML和Json的特点十requestgetSes...

java各知识点详细总结 (1)

Java知识第1章一java概述1java发展19xx年Sun公司的JamesGosling等人开始开发名称为Oak的语言希望用于控制嵌入在有线电视交换盒PDA等的微处理器19xx年将Oak语言更名为Java2...

java知识点总结

目录目录基础篇一JDK常用的包二Get和Post的区别三Java多态的具体体现四StringBufferStringBuilderString区别五Hashtable与HashMap的区别六九大隐式对象七For...

java知识点总结

1请说出作用域publicprivateprotected以及不写时的区别本类同包中的类其他包中子类其他包中的类PublicVVVVProtectedVVVXDefaultVVXXPrivateVXXX2Ove...

java知识点总结

目录目录基础篇一JDK常用的包二Get和Post的区别三Java多态的具体体现四StringBufferStringBuilderString区别五Hashtable与HashMap的区别六九大隐式对象七For...

java基础知识总结(超级经典)

Java基础知识总结超级经典写代码1明确需求我要做什么2分析思路我要怎么做1233确定步骤每一个思路部分用到哪些语句方法和对象4代码实现用具体的java语言代码把思路体现出来学习新技术的四点1该技术是什么2该技...

java知识点总结(36篇)