Java知识总结--SE篇

本文详细介绍了Java SE的相关知识点,包括Java的跨平台原理、JDK与JRE的区别、基本数据类型及其特点,以及整型与浮点型的范围对比。深入探讨了Int与Integer的差异、装箱拆箱机制、重写与重载的概念。此外,还讲解了final关键字的作用、面向对象的特性、接口与抽象类的区别,并分析了String的底层实现及不可变性。内容涵盖反射、动态代理、序列化等多个高级主题,旨在帮助读者全面掌握Java SE核心知识。
摘要由CSDN通过智能技术生成

Java-SE


目录

Java-SE

1-1-什么是Java的跨平台原理

1.2-JDK 和 JRE 有什么区别?

1.3-Java基本数据类型

1.4-Java基本类型所占字节和范围

1.5-int(long) 和 float(double) 哪个表示的范围大?为什么?

1.6-Int和Integer的区别,在使用时有什么区别?

1.7-有了基本的数据类型,为什么还需要包装类型

1.8-装箱和拆箱,自动拆箱,自动装箱

1.9-重写,重载

1.10-==和equals方法的区别

1.11- final 在 java 中有什么作用?

1.12-面向对象的特征有哪些方面

1.13-接口和抽象类(接口的抽象级别最高)

1.14-抽象类不是必须要有抽象方法

1.15-普通类和抽象类的区别

1.16-抽象类不能使用 final 修饰

1.17-String底层实现,不可变的原因

1.18-String 不属于基础的数据类型

1.19-String str="str"与 String str=new String("str")的内存分配

1.20- String 类的常用方法

1.21-String,StringBuilder,StringBuffer的区别?

1.22-什么是值传递和引用传递?

1.23-SimpleDateFormat的作用和用法

1.24- java 中 IO 流分类

1.25-Java的流

1.26- Files的常用方法

1.27-如何创建文件和目录?

1.28-面向对象编程的六大原则

1.29-设计模式

1.30- 运行时异常与一般异常的区别

1.31-&和&&的区别

1.32-final, finally, finalize的区别。

1.33-error和exception的区别。

1.34-Math.round(9.5)等多少? Math.round(-9.5)等多少?

1.35-Java流程控制语句

1.36-反射

1.37-反射相关的类

1.38-反射的功能

1.39-反射的优点

1.40-反射的缺点

1.41-反射的使用场景

1.42-动态代理

1.43-动态代理的应用场景

1.44-动态代理实现

1.45-序列化和反序列化

1.46-序列化使用场景

1.47-怎么实现序列化

1.48-序列化需要付出的代价

1.49-BIO,NIO,AIO


1-1-什么是Java的跨平台原理

             Java通过不同的系统,不同的版本不同的位数的Java虚拟机(JVM)来屏蔽不同的指令集,然后对外提供了统一的Java接口(API),这样,我们的开发者只需按照接口开发即可,如果系统需要部署在不同的环境是,只需要系统上面按照片对应版本的虚拟机即可


1.2-JDK 和 JRE 有什么区别?

  • JDK:java 开发工具包,提供了 java 的开发环境和运行环境。
  • JRE:java 运行环境,为 java 的运行提供了所需环境。

1.3-Java基本数据类型


1.4-Java基本类型所占字节和范围


1.5-int(long) 和 float(double) 哪个表示的范围大?为什么?


float表示的 范围更大。float 和 int 都是4个字节,而 float 还要表示小数,为什么 float 表示的数字范围大?

  • int 底层使用的是补码的方式表示一个数:1 位符号位 + 31 位二进制数

  • float 底层使用的是IEEE 754 浮点单精度数字格式,简单来说就是用指数的形式去表示一个数:1 位符号位 + 8 位指数 + 23位尾数

1.6-Int和Integer的区别,在使用时有什么区别?

  1. Integerint的包装类,int则是java的一种基本数据类型

  2. Integer变量必须实例化后才能使用,而int变量不需要

  3. Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

  4. Integer的默认值是null,int的默认值是0


1.7-有了基本的数据类型,为什么还需要包装类型

  • 因为Java是一个面向对象的语言,而基本的数据类型不具备面向对象的特性

1.8-装箱和拆箱,自动拆箱,自动装箱

  1. 装箱:把基本的数据类型转换成对应的包装类型

  2. 拆箱:把包装类型转换成对应的基本数据类型

  3. 自动装箱实际上编译时会调用integer.valueOf方法来装箱   Integer i=1;

  4. 自动拆箱实际上编译时会调用intValue方法来拆箱   Int j=i.intValue();


1.9-重写,重载

重载:方法名字相同,而参数不同。返回类型可以相同也可以不同

重写:子类定义的方法与父类中的方法具有相同的方法名字,相同的参数表和相同的返回类型

  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

  • 声明为 static 的方法不能被重写,但是能够被再次声明。

  • 子类如果不是抽象类,则必须重写父类中的abstract方法。

  • 如果不能继承一个方法,则不能重写这个方法。


1.10-==和equals方法的区别

==对于基本类型是比较的是是否相同,对于引用类型比较的是地址是否相同。equals默认情况下是引用的比较,只是很多类重写了 equals的方法,比如spring,integer等把它变成了值比较,所以一般情况下equals比较的是是否相等


1.11- final 在 java 中有什么作用?

  • final 修饰的类叫最终类,该类不能被继承。

  • final 修饰的方法不能被重写。

  • final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。


1.12-面向对象的特征有哪些方面

多态,继承,封装, (抽象)

  • 抽象:把一个对象,抽象为类

  • 封装:隐藏类的内部信息,外部类不可以直接访问,可以通过get/set去获取或值改变这个类

  • 继承:通过extends继承父类的基本特征和行为,子类也可以改变这些基本特征和行为

  • 多态:也就是同一个操作作用在不同对象上面的时候可以产生不同的效果


1.13-接口和抽象类(接口的抽象级别最高)

相同点:

  • 不能被实例化。

不同点:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值