包装类 java.lang下
Java--Integer的常量缓存池(默认-128~127数值范围)_integer缓存范围-CSDN博客
包装类:Byte,Short,Integer, Long Double Float Boolean Charecter
包装类提供了基本数据类型和String的相互转换的方法
基本类型和包装类之间的转换:
自动装箱时必须为同类型的基本数据类型。
比较值和地址
拆装箱
String与包装类之间的装箱:
字符串转为数值类型的包装类是不安全的,有异常NumberFormatExceptiom
数字类型异常原因是 String值中包含了数值之外的其他字符
toSring方法也是不安全的,会引发空指针异常。String的valueof方法相对安全
基本类型和String类型的相互转换
内部类:在某个类中内部定义的类
访问当前内部类的属性和方法:
外部类.this.属性名
外部类.this.方法名
Java 内部类详解 | 菜鸟教程 (runoob.com)
内部类的分类
变量的分类
成员变量 对像所有
静态变量 属于类
局部变量 方法内
成员内部类:![](https://i-blog.csdnimg.cn/blog_migrate/46af22b541c6ef2064fa00afec9a0255.png)
1)在外部类中直接使用
2)在其它类中使用
创建外部类的对象
通过外部类的对象创建成员内部类的对象
外部类.内部类 名 = 外部对象名.new 内部类名();
静态内部类:![](https://i-blog.csdnimg.cn/blog_migrate/e11a8acd976ea6dfc5ad636e0a6f59ac.png)
只能访问静态成员
局部内部类:
在类中的某个方法中定义的类
仅可以在方法中调用
局部内部类在成员方法中可以访问外部类所有成员
局部内部类在静态方法中仅可以调用外部类的静态成员
局部内部类可以访问所在方法的局部变量 final
为什么局部内部类和匿名内部类只能访问 final 的局部变量? | 菜鸟教程 (runoob.com)
jdk1.8之前局部变量被局部内部类使用 ,改为final修饰,不可更改.
jdk8之后final可以省略不写.
匿名内部类:
一般来说,匿名内部类用于继承其他类或是实现接口,
并不需要额外的属性或方法,
只是对继承方法的实现或是重写。
Lambda表达式:使用对象:匿名内部类 定义的接口
jdk8开始时
段匿名内部类仅包含一个抽象方法接口时,可以简化
Lambda式的语法:
接口名 对象名 = (方法的参数列表) ->{方法体};
Lambda注意事项
如果方法体仅包含一行语句,则{}可省略不写
如果方法参数仅包含一个,则()可省略不写
如果接口中的方法带返回值,则方法体中仅包含一行return语句,则{} return都省略.
java.util.Function包下四个常用的函数式接口
函数式接口: 此接口仅含一个抽象方法
用来使用Lambda表达式
可以在接口使用注解 @FunctionalInterface
常用工具类:
1Math类和Random类
2日期类使用'
java.lang.Math类提供了一组静态的数学方法
ceil():向上取整数
floor():向下取整数
round():返回最接近的整数 round(a) = floor(a+ 0.5) ;
java.util.Random:随机数类
创建Random对象
调用 对象.nextInt(System.in);