java基础易错、难理解、易混淆知识点复习
2017-12-27 16:38
405 查看
以下为学习java基础语法与原理过程中发现的一些与以往感觉不同、或者是不熟悉的地方,特此列出。只是提纲所以不是很详细,有些地方为了通俗易懂可能不是很严谨,尽请指正与补充。
1、 java命令行编译与运行:
2、 栈:形参、局部变量存在栈中,进入子程序分配,退出子程序释放
3、 堆:用new语句创建的内存在堆中,退出子程序时不释放
4、 Double类型变量比较大小,使用:
5、 /* /用于注释一行或多行,此间注释可被javadoc转换成文档。文档中如果是private类型的字段不会出现。
格式 ->
6、
7、
8、 在字符串提取单个字符:
9、
10、
第一个int为开始的索引,对应String数字中的开始位置,
第二个是截止的索引位置,对应String中的结束位置
11、
12、 被重载的方法必须具有不同的参数列表,不能基于不同的修饰符或返回值类型。
13、 数组:
14、 数组的复制:不能使用list1 = list2 ,可以用循环实现,或者是用arraycopy
15、
16、
17、 二维数组中每一行本身就是一个数组,因此各行长度可不同。
18、 Java包名每个字母小写
19、
20、 String类型变量存在堆中而非栈中
21、 Java类中成员变量自动赋初值,却没有给方法中局部变量赋初值。
22、 Java自动回收机制:在应用程序内存不足或者JVM闲置的时候
23、 Java手动回收机制:x=null即可
24、
25、 静态变量存放在静态区中,其空间在第一次出现该类名时分配
26、 数据域封装:即将属性设置为private并设置get、set方法
27、 因为字符串在程序设计中是不可变的,但同时又会频繁使用,因此java虚拟机为了提高效率并节约内存,对具有相同字符序列的字符串直接量使用同一个实例,这样的实例称为限定的字符串。但是使用new出来的相同内容的字符串会开辟新的空间。
28、 一个字符串的内容是不能改变的,但是使用replace,replaceFirst,replaceAll方法会返回一个源自原始字符串的新字符串(并未改变原字符串)。
例如:
29、 判断是不是某类型,使用
30、 Java中一个对象变成垃圾后会调用
31、
32、 自带的
33、 GetClass() 返回java.lang.class的一个实例,包含这个对象的类的信息
34、 类的初始化块:在类中,却不在任何方法里面,加上
会被自动加入到所有构造函数之前执行,而如果用static修饰,则会在类生成之前创建
Java正则表达式
写法:
字符串.match(正则字符串)
获取匹配到的值:
匹配到的使用
m.group(index)获取
同时,字符串中replaceAll,replace,split方法均可使用正则。
Split的第二个参数,如果<=0,就全部切割,否则切割n-1个
1、 java命令行编译与运行:
javac Welcome.java -> java Welcome
2、 栈:形参、局部变量存在栈中,进入子程序分配,退出子程序释放
3、 堆:用new语句创建的内存在堆中,退出子程序时不释放
4、 Double类型变量比较大小,使用:
Double.doubleToLongBits(参1) == Double.doubleToLongBits(参2)
5、 /* /用于注释一行或多行,此间注释可被javadoc转换成文档。文档中如果是private类型的字段不会出现。
格式 ->
Javadoc Person.java
/** * This constructor initializes attributes name and age. * @param n The Person's name, in first name - middle initial - last name order. * @param a The Person's age. */ public Person(String n, int a) { name = n; age = a; }
6、
Float f = 1.4是错的,应写成
float f = 1.4f
7、
^为异或
8、 在字符串提取单个字符:
string.charAt(index)
9、
toLowerCase(),toUpperCase()
10、
public String substring(int beginIndex, int endIndex)
第一个int为开始的索引,对应String数字中的开始位置,
第二个是截止的索引位置,对应String中的结束位置
11、
string.indexOf()返回字符串中一个字符或子串
int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引。
int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。
int lastIndexOf(String str):返回在此字符串中最右边出现的指定子字符串的索引。
int lastIndexOf(String str, int startIndex):从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。
12、 被重载的方法必须具有不同的参数列表,不能基于不同的修饰符或返回值类型。
13、 数组:
double[] mylist或者
double mylist[]但不推荐,但此时只是一个引用
Mylist = new double[10];或者
double[] list = {1.2,2.8}
14、 数组的复制:不能使用list1 = list2 ,可以用循环实现,或者是用arraycopy
15、
System.arraycopy(list1,0,list2,0,list1.length)
16、
Java.util.Arrays.sort(list1)
17、 二维数组中每一行本身就是一个数组,因此各行长度可不同。
18、 Java包名每个字母小写
19、
Scanner input = new Scanner(System.in) Double radius = input.nextDouble();
20、 String类型变量存在堆中而非栈中
21、 Java类中成员变量自动赋初值,却没有给方法中局部变量赋初值。
22、 Java自动回收机制:在应用程序内存不足或者JVM闲置的时候
23、 Java手动回收机制:x=null即可
24、
25、 静态变量存放在静态区中,其空间在第一次出现该类名时分配
26、 数据域封装:即将属性设置为private并设置get、set方法
27、 因为字符串在程序设计中是不可变的,但同时又会频繁使用,因此java虚拟机为了提高效率并节约内存,对具有相同字符序列的字符串直接量使用同一个实例,这样的实例称为限定的字符串。但是使用new出来的相同内容的字符串会开辟新的空间。
28、 一个字符串的内容是不能改变的,但是使用replace,replaceFirst,replaceAll方法会返回一个源自原始字符串的新字符串(并未改变原字符串)。
例如:
s.replace(‘e’,’A’); //将s中所有e换成A s.replaceFirst(“e”,“AB”) //将s中第一个e换成AB
29、 判断是不是某类型,使用
instanceOf
30、 Java中一个对象变成垃圾后会调用
finalize()方法,相当于析构函数
31、
Clone()只能完成浅拷贝
32、 自带的
toString()会返回
实例名@地址
33、 GetClass() 返回java.lang.class的一个实例,包含这个对象的类的信息
34、 类的初始化块:在类中,却不在任何方法里面,加上
{ Xxxxx; }
会被自动加入到所有构造函数之前执行,而如果用static修饰,则会在类生成之前创建
Java正则表达式
写法:
字符串.match(正则字符串)
“java”.matchers(“ja”) Boolean b = Pattern.matches(正则字符串,被匹配的字符串)
获取匹配到的值:
String pattern = “(\\D*)” Pattern r = Pattern.compile(pattern) Matcher m = r.matcher(“This is a good day”)
匹配到的使用
m.group(index)获取
同时,字符串中replaceAll,replace,split方法均可使用正则。
“Java Java”.replaceAll(“v\\w”,’wi’) //Jawi Jawi “Java1Html2Perl”.split(“\d”) //Java,Html,Perl “Java1Html2Perl”.split(“\d”,1) //Java1Html2Perl
Split的第二个参数,如果<=0,就全部切割,否则切割n-1个
相关文章推荐
- 黑马程序员---易错、易望、基础、重要知识点 ——java语言的基本常识
- 黑马程序员---易错、易望、基础、重要知识点——java中最常用的两种排序方式
- java基础中容易混淆的知识点
- Java基础复习,整理知识点
- 复习五:java基础知识点
- Java基础[易错知识点]
- 复习七:java基础知识点
- Java基础知识点复习2(编辑中)
- [java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!
- 复习三:java基础知识点
- [java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!
- java 基础复习 --小知识点
- java基础知识6-- 抽象类,抽象方法,接口,构造方法,类方法等易混淆的知识点
- Java基础易漏易错知识点总结
- java基础知识点复习
- Java知识点复习1基础备忘
- 复习六:java基础知识点
- 复习一:java基础知识点
- Java基础之疑难知识点
- Java基础复习--java.util.Timer定时任务