JAVA语言基础01_原始数据类型

1.1 原始数据类型 1
1.1.1 数值比较 1
1.1.2 基本类型和不可变类型 1
1.1.3 BigInteger和BigDecimal 2
1.1.4 java中的大小端 2
1.1.5 32位和64位 2
1.1.6 字符串处理 2
1.1.7 可变参数 2
1.1.8 Java安全类库/安全管理器 3
1.2 流程控制语句 3
1.2.1 break/continue label用法 3
1.2.2 switch支持的变量类型 4
1.3 类、接口、对象 4
1.3.1 Java的单继承和多继承 4
1.3.2 类和成员可见性/作用域 4
1.3.3 函数重载overload与覆盖override 5
1.3.4 变量与函数的运行时绑定规律 5
1.3.5 变量初始化 6
1.3.6 Default函数(默认方法) 6
1.3.7 函数式接口 6
1.3.8 ==,equal()和hashCode() 7
1.3.9 Cloneable 8
1.3.10 Serializable 8
1.3.11 finalize() 9
1.4 集合 9
1.4.1 collection各类和接口继承结构 9
1.4.2 LinkedHashMap 11
1.4.3 集合初始化、大小和扩容机制 12
1.4.4 Collections和Arrays工具类 13
1.4.5 WeakReference弱引用 14
1.4.6 for-each 循环优于传统for循环 15
1.4.7 HashMap中的equal和hashCode 15
1.5 异常处理 15
1.5.1 异常种类和继承结构 15
1.5.2 try catch finally中的return 16
1.5.3 try-with-resources语句 16
1.5.4 throw/throws 17
1.5.5 线程和线程池的异常处理 17
1.5.6 异常泄露敏感信息 19
1.6 反射 19
1.6.1 Java反射和相关类/方法 19
1.6.2 代码示例 21
1.6.3 Java中的Class对象 22
1.6.4 Reflect中的Modifier 24
1.7 输入输出流 25
1.7.1 常用的输入输出流 25
1.7.2 IO流继承关系图 26
1.7.3 NIO 28
1.7.4 用NIO多线程往同一文件写入数据 29
1.8 线程 29
1.8.1 Java的Thread类方法 29
1.8.2 线程创建方式 32
1.8.3 线程退出方式 34
1.8.4 共享数据和Synchronized 34
1.8.5 AtomicInteger 35
1.8.6 线程同步机制 35
1.8.7 守护线程 36
1.8.8 Java的线程池体系结构 37
1.9 JDBC 38
1.9.1 基本的JDBC连接 38
1.9.2 参数化查询 40
1.9.3 数据库连接池DBCP 40
1.9.4 DbUtils 41
1.9.5 FetchSize设置每次缓存读取大小 41
1.10 Java8 41
1.10.1 lamda表达式 41
1.10.2 Stream 43
1.10.3 Optional 45
1.10.4 MetaSpace 47
1.11 泛型 48
1.11.1 泛型类、接口、方法 48
1.11.2 只在编译期有效 49
1.11.3 泛型容器之间没有继承关系 49
1.11.4 泛型通配符 49
1.12 类初始化过程 50
1.13 GC 51
1.13.1 需要GC的区域 51
1.13.2 需要GC的对象 51
1.13.3 什么时候触发GC 52
1.13.4 GC做了哪些事情 52
1.13.5 System.gc() 53
1.14 JDK工具 53
1.14.1 标准工具 54
1.14.2 实验性工具 54
1.15 正则表达式 55
1.15.1 Java正则表达式类 55
1.15.2 正则表达式语法 56
1.16 网络socket 57

  1. 整型包装类比较

对于 Integer var = ? 在-128 至 127 范围内的赋值,Integer 对象是在 IntegerCache.cache 产生,会复用已有对象,所以:-128 至 127区间内的 Integer 值用可以判断相等;但是这个区间之外的所有数据,都会在堆上产生,并不会复用已有对象,此时其地址不同,用判断会不相等,正常建议都用equals判断。

public static void test1() {
     Integer a1 = 100;
     Integer a2 = 100;
     Integer a3 = 150;
     Integer a4 = 150;
     System.out.println(a1 == a2);
     System.out.println(a3 == a4);
     System.out.println(a3 == 150);
 }
 
true
false
true

2.浮点包装类比较
与0.0f或0.0d作算术比较(>或<判断)是允许的,但不能直接判断相等==。做大小比较时考虑使用Float或Double的compare (f1, f2)方法,或BigDecimal。

注意区分:整数型包装类型应该使用equals方法做比较。浮点型包装类型不能用equals或者compareTo(another) == 0进行相等的比较,但是可以进行compareTo(another)比较大小(>或<判断)。

计算绝对值是否小于1e-6:(Math.abs(a -10.0) < 1e-6)
反例:for(double x = 0; x !=10; x += 0.1),导致死循环

浮点型数据默认为double类型。添加后缀f标识float

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值