Java总结杂记

本文介绍了JDK1.5的主要新特性,包括自动装箱与拆箱、枚举、静态导入、可变参数、内省、泛型、For-Each循环等。同时还探讨了设计模式如单例模式、装饰模式等的应用,并提到了一些高级主题如锁和条件接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDK升级的目的:1.简化书写;2.提高效率;3.增加安全性。
JDK 1.5特性:
1.自动装箱与拆箱:自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。自动拆箱,只需将该对象值赋给一个基本类型即可。java——类的包装器类型包装器有:
Double,Float,Long,Integer,Short,Character和Boolean

2.枚举
把集合里的对象元素一个一个提取出来。枚举类型使代码更具可读性,理解清晰,易于维护。枚举类型是强类型的,从而保证了系统安全性。而以类的静态字段实现的类似替代模型,不具有枚举的简单性和类型安全性。简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。复杂用法:Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象。

3.静态导入
通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out。

4.可变参数(Varargs)
可变参数的简单语法格式为:methodName([argumentList], dataType…argumentName);

5.内省(Introspector)
是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。

6.泛型(Generic)
一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换。引入泛型,允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。

7.For-Each循环
For-Each循环得加入简化了集合的遍历。

杂记:将同步和锁封装成对象,并将操作锁的隐式方式定义到了该对象中,将隐式动作变成了显示动作。Lock接口:出现替代了同步代码块或者同步函数,将同步的隐式操作变成显示操作,同时更为灵活,可以一个锁上加上多个监听器。Lock(),获取锁;unlock(),释放锁。锁的关闭通常通常放在finally块中。Condition接口:出现了await(),signal(),signalAll()。

设计模式:

1.单例设计模式:当多个线程使用同一个配置信息对象的时候,就需要保证对象的唯一性。而单例设计模式就是为了解决这个问题,保证内存中的某一个类在内存中的对象唯一性。
1.1 如何保证对象的唯一性:
1.1.1 不允许其他程序使用new创建该类对象;
1.1.2 在该类创建一个本类实例;
1.1.3 对外提供一个方法让其他程序可以获得该对象。
1.2 步骤:
1.2.1 私有化该类的构造对象;
1.2.2 通过new在本类创建一个本类的对象;
1.2.3 定义一个公有的方法,将创建的对象返回。
1.3 饿汉式:
class Single{
//类加载的时候就创建本类对象
private static Single single = new Single();
private Single(){}
//公有方法
public static Single getInstance(){
Return single;
}
}
1.4 懒汉式:
Class Single{
//延迟加载类对象
private static Single single = null;
private Single(){}
//公有方法
public static Single getInstance(){
if(single==null)
single = new Single();
return single;
}

}
2.装饰模式:对原有的类进行功能的整改,增强。装饰与继承的区别:装饰比继承更加灵活,装饰类和被装饰类都必须同属同一个接口或者父类。通过继承扩展得来的功能必将使得整个类体系变得更加臃肿。

3.代理技术:工厂模式/配置文件
4.享元模式 用常量构造的String类就使用了享元模式。-128—127 是存在常量池中的 而超出的则会在内存中开辟出来存储。
杂记:

1.基本类型不是Object,基本类型的数组是Object。
一个基本类型可以赋值给一个Object
一个基本类型的一维数组不能用等号赋值给Object一维数组。
一个基本类型的二维数组能够用等号赋值给Object一维数组。
一个Object变量可以接收一个基本类型的变量,也可以接收一个基本类型的一维数组。
对象型数组则没有限制。
2.内存泄露:一个东西不被使用之后,依然占用着内存。
3.BeanUtils使用字符串形式对属性进行操作//PropertyUtils使用属性本身的类型进行操作。
4.注解/Annotation 一个注解就是一个类
5.泛型通配符 ? ?做参数不能调用涉及到类型的方法。
6.泛型不考虑继承关系 泛型真实类型必须是引用类型 不能是基本类型 new int[] 里面的元素不能自动装箱。
7.泛型编译的去类型化,不是重载,Vector.class = Vector.class

—————不断更新中—————

内容概要:本文档《Docker 新手入门指南》详细介绍Docker这一开源容器化平台,旨在帮助新手理解并掌握Docker的核心概念和基本操作。文中首先解释了Docker的概念及其相对于传统虚拟机的优势,如更快的启动速度、更低的资源占用和更好的隔离性。接着,文档提供了详细的安装步骤,包括不同操作系统下的安装方法以及针对国内用户的镜像加速配置。随后,文章深入讲解了镜像管理和容器操作的基础命令,如拉取镜像、运行容器等。进一步地,文档介绍了使用Dockerfile构建自定义镜像、实现数据持久化、进行端口映射以及利用Docker Compose管理多容器应用等高级技巧。最后,给出了一些学习建议和注意事项,鼓励读者动手实验并关注安全性。 适合人群:适合对容器技术感兴趣的初学者,尤其是有一定Linux基础或打算深入了解Docker的开发人员。 使用场景及目标:①帮助读者快速上手Docker,掌握从安装到实际操作的一系列技能;②通过实例演示,如构建Python Web服务、部署WordPress和搭建Jenkins环境,让读者能够将所学应用于实际项目中;③强调容器化的优势,如提高部署效率、解决环境差异问题。 阅读建议:建议读者跟随文档逐步操作,亲身体验每个步骤,同时参考官方文档和社区资源,不断实践以巩固所学知识。特别注意安全性和资源管理方面的提示,确保容器环境的安全稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值