Java知识点总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java知识点总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5191字,纯文字阅读大概需要8分钟。
内容图文
![Java知识点总结](/upload/InfoBanner/zyjiaocheng/626/3608f4129ddb47a3942ce340bd8ee9a8.jpg)
Java 基本数据按类型可以分为四大类:{布尔型}、{整数型}、{浮点型}、{字符型},这四大类包含 {8} 种基本数据类型。
Java 语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,即{包装类}。
char 的包装类{Character}。.
包装类存在高频区间的数据缓存,以 Integer 为例来说,在数值区间为 {-128~127}时,会直接复用已有对象,在这区间之外的数字才会在{堆}上产生。
{Float} 和 {Double} 不会有缓存,其他包装类都有缓存。
{Integer} 是唯一一个可以修改缓存范围的包装类
{Integer} 和 int 比较时,会自动拆箱为 int 相当于两个 int 比较。
直接定意小数是默认{Double}类型的。
包装类体现了面向对象的{设计理念},比基本数据类型功能多。
包装类因为有高频区域数据缓存,所以推荐使用 {equals()}(衣裤奥斯) 方法进行值比较。
当基本数据类型为局部变量的时候,比如在方法中声明的变量,则存放在{方法栈}中,当方法结束系统会释放方法栈,在该方法中的变量也会随着栈的销毁而结束,这也是局部变量只能在方法中使用的原因。
当基本数据类型为全局变量的时候,比如类中的声明的变量,则存储在{堆}上,因为全局变量不会随着某个方法的执行结束而销毁。
有些{浮点数}不能完全精确的表示出来。
String 是标准的{不可变类}(immutable),对它的任何改动,其实就是创建了一个{新对象},再把引用指向{该对象}。
String 对象赋值之后就会在{常量池中缓存},如果下次创建会判定{常量池}是否已经有缓存对象,如果有的话直接返回该{引用}给创建者。
字符串拼接常使用{StringBuilder}类。
对于基本类型和引用类型 == 的作用效果是不同的,基本类型:比较的是{值}是否相同;引用类型:比较的是{引用}是否相同。
String 为不可变类型,在方法内对 String 修改的时候,相当修改传递过来的是一个 String {副本},所以 String 本身的值是不会被修改的,而 StringBuffer 为{可变类型},参数传递过来的是{对象的引用},对其修改它本身就会发生改变。
字符串常量池是存储在 Java {堆内存}中的字符串池,是为防止每次新建字符串带的时间和空间消耗的一种解决方案。
String 不能被继承。因为 String 被声明为 {final}(最终类)。
Exception 和 Error 都属于 {Throwable} 的子类,在 Java 中只有 Throwable 及其之类才能被捕获或抛出,它们的区别如下:Exception(异常)是程序正常运行中,可以预期的意外情况,并且可以使用 try/catch 进行捕获处理的。Error(错误)是指突发的非正常情况,通常是不可以恢复的,比如 Java 虚拟机内存溢出,诸如此类的问题叫做 Error。
throw(丝柔) 语句用在{方法}体内,表示抛出异常由方法体内的语句处理,执行 throw 一定是抛出了某种异常;throws(愁死) 语句用在{方法}声明的后面,该方法的调用者要对异常进行处理,throws 代表可能会出现某种异常,并不一定会发生这种异常。
jdk 8提供了新的遍历方式 {Lambda} :Arrays.asList(arr).forEach(x -> System.out.println(x));
Arrays 常用方法如下:Arrays.copyOf() 数组{拷贝};Arrays.asList() 数组{转为 List 集};Arrays.fill() 数组{赋值};Arrays.sort() 数组{排序};Arrays.toString() 数组{转字符串};Arrays.binarySearch() {二分法}查询元素;Arrays.equals() {比较}两个数组的值。
数组和集合的区别如下:集合可以存储{任意}类型的对象数据,数组只能存储同一种数据类型的数据;集合的长度是会发生{变化}的,数组的长度是{固定}的;集合相比数组功能更强大,数组相比集合{效率}更高。
抽象的关键字是什么?{Abstract}
{Serializable}是一个对象序列化的接口,一个类只有实现了该接口,它的对象才能被序列化。
使用关键字 {abstract} 修饰的类就叫做抽象类,由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
编译器可以给你验证{@Override}下面的方法名是否是你父类中所有的,如果没有则报错。
使用{abstract}关键字修饰的方法叫做抽象方法,抽象方法仅有声明没有方法体。
使用{interface}定义接口,使用{implements}继承接口。
方法区在JVM中也是一个非常重要的区域,它与堆一样,是被{线程共享}的。
Servlet的生命周期分为5个阶段:{加载}、创建、{初始化}、处理客户请求、卸载。
stream结尾都是字节流,reader和writer结尾都是字符流 两者的区别就是读写的时候一个是按字节读写,一个是按字符。
{instanceof}严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例。
Java中数组是{对象},不是基本数据类型(原生类),大小不可变且连续存储,因为是对象所以存在{堆}中。
接口所有方法全是抽象方法只能{public abstract}修饰,属性默认{public static final}修饰。抽象类除了包含抽象方法外与普通类无区别。
Java中所有的{非抽象}方法都必须在类内定义。
抽象方法不能有{方法体}。
抽象类和接口的设计就是用来{规定}子类行为特征的,就是让其他类来继承,是{多态}思想的一种设计体现,所以强制规定抽象类不能被实例化。
运行异常,可以通过{java虚拟机}来自行处理。非运行异常,我们应该捕获或者抛出。
方法区和堆内存是线程{共享的},程序计数器、虚拟机栈是线程{隔离的}。
序列化常见的使用场景是远程服务调用(RPC)和网络对象传输等,可通过 implements {Serializable}来实现对象序列化,在序列化对象中通过定义 serialVersionUID 来防止执行不兼容的类更改。
使用 {synchronized} 来保证线程安全,完成互斥锁、同步操作。
{final}修饰不能被继承的类,不能被复写的方法,不能被修改的常量。 郑州看胎记哪个医院好 http://m.zykdbh.com/
finalize方法,是Object类提供的方法(protected void finalize() throws Throwable),在系统回收时被触发的收尾方法,相当于C++中的析构函数,即使出现异常也不会中断系统的运行。
{ceil}:返回大于或等于参数的最小double值;{floor}:返回小于或等于参数的最大double值;{round}:返回参数中最接近的int,其中int四舍五入为正无穷大。
PreparedStatement继承{Statement},PreparedStatement 实例包含已编译的SQL语句,所以其执行速度要快于Statement对象。三种方法{execute}、{executeQuery}和{executeUpdate}已被更改以使之不再需要参数。
局部变量必须有{初始值}。实例变量指的是类中定义的变量,即成员变量,如果没有初始化,会有默认值。类变量指的是用{static}修饰的属性
内容总结
以上是互联网集市为您收集整理的Java知识点总结全部内容,希望文章能够帮你解决Java知识点总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。