赞
踩
1.1 数据类型
1.1.1 数值类型
1️⃣从java7开始,加上前缀0b或0B就可以写二进制;
2️⃣指数的表示
十进制中以10为底指数的表示:
十六进制中以2位底指数的表示:
3️⃣double中的严格浮点计算:strictfp
double类型的三个特殊值:增无穷大、负无穷大、NaN
Double.POSITIVE_INFINITY // 正无穷大
Double.NEGATIVE_INFINITY // 负无穷大
Double.NaN
1.1.2 Unicode和char类型
Unicode
专业术语
UTF-16编码采用不同长度的编码表示所有的Unicode码点
char类型
在java中,char类型描述了UTF-16的一个代码单元
char类型是用16位表示
有些unicode字符可以用一个char值来描述,另一些Unicode字符需要用两个char值来描述。
区分码点、代码单元的用途:
length() 方法
想要获取实际长度,即码点数量,即字符个数
获取第几个代码单元:
获取第几个码点:
1.1.3 大数值: BigInteger和BigDecimal
1.2 规范
1.2.1 变量
关于“$”
关于“++”的使用
1.3 运算符
1.3.1 位运算符
和<<运算符将位模式左移或右移
运算符会用0填充高位;>> 会用符号位填充高位;不存在<<< 运算符;
1.3.2 运算符的级别
1.4 String
1.1 String是不可变字符串。一定不要使用“==”检测两个字符串是否相等,每次连接字符串,都会构建一个新的String对象;
每次连接都会创建一个新的字符串,这样既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。
StringBuilder的前身是StringBuffer。StringBuffer效率稍微有些低,但允许采用多线程的方式执行添加或删除字符的操作。
StringBuilder 除了能够apped字符串,还能添加代码单元,添加码点
所有字符串都在一个单线程中编辑,则应该用StringBuilder代替它。
1.2 String 的length方法将返回采用UTF-16编码表示的给定字符所需要的代码单元数量
要想获取实际的字符长度,即码点数量,可以调用:codePointCount 方法
public static void test04() throws UnsupportedEncodingException {
String greeting = “Hello”;
String codeStr = “\uD835\uDD46”;
byte[] b = codeStr.getBytes(“UTF-16”);
String s = new String(b, “UTF-16”);
System.out.println(“greeting:”+greeting);
System.out.println(“一个UTF-16编码的特殊符号s:”+s);
System.out.println("greeting.length() : " + greeting.length()); // 打印出 5
System.out.println("greeting.codePointCount() : " + greeting.codePointCount(0, greeting.length())); // 打印出5
System.out.println("s.length() : " + s.length()); // 打印出 2
System.out.println("s.codePointCount() : " + s.codePointCount(0, s.length())); // 打印出 1
}
1.3 连接字符串:join 方法,可以指定分界符
1.4 所有字符串都属于CharSequence接口
1.5 控制流程
1.6 数组
类
在一个源文件中,只能有一个共有类,但可以有任意数目的非公有类。
构造器
finalize方法
对象
Java的对象都是在堆中创造;
⚠️警告:不要编写返回引用可变对象的访问器方法。如果需要返回一个可变对象的引用,应该首先对它进行克隆(clone)。
Date对象有一个更改器方法setTime。
也就是说Date对象是可变的,这一点就破坏了
封装性!
*/
public Date gethireDay(){
return this.hireDay;
}
- // 正确的做法
public Date getHireDay(){
return (Date)this.hireDay.clone();
}
封装:
封装通常提供三项内容:
封装的好处:
警告:永远不要编写返回引用 可变对象 的方法器方法。
调用构造器的具体处理步骤:
0、静态域在类被加载的时候进行初始化。静态代码块在类第一次的时候执行一次。(创建对象的时候不再执行)
1、所有数据域被初始化为默认值(0、false、或null);
2、按照在类声明中出现的顺序,依次执行所有域初始化语句和初始化块;
3、如果构造器第一行调用了第二个构造器,则执行第二个构造器主体;
4、执行这个构造器的主体;
修饰符:
final 实例域
static 方法
静态导入(import)
其他
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。