
javaSE
文章平均质量分 69
do_your_best_anyway
本人小白一枚
展开
-
Java面试题一:为什么Java可以做到一处编写处处运行?
Java可以做到一处编写处处运行(即Java的跨平台)的关键是因为jvm的存在。Java在程序运行前会将源代码编译成字节码,并且java源程序只要编译一次就行了,下次在不同的平台上只要直接由jvm运行就行了,不需要再次编译。在程序运行阶段会由平台相关的jvm转变为机器代码,我们需要注意的是,跨平台的是Java程序,而不是jvm,不同的平台有不同的jvm。原创 2023-02-19 08:28:02 · 977 阅读 · 0 评论 -
Java高级编程之多线程
多个cpu同时执行多个任务,如不同的人做不同的事(错误理解:并行是针对单核而言(即一个cpu),他会给人一种假象--让你认为它会同时执行多个线程,实际上对于并行而言,cpu会给他们分配时间片,时间片一到就要切换到下一个线程)是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生、存在、消亡过程-----生命周期(个人理解:被加载到内存中的程序成为了进程,即运行中的程序)进程可进一步细化为线程,是一个程序的一条内部执行路径(个人理解:一个进程中可以有一个或多个线程,其代表不同的功能)原创 2023-01-06 17:44:04 · 67 阅读 · 0 评论 -
Java高级编程之常用类
String类是一个不变类,只要是改变原有String类的对象(常量除外)都会另新创建一个String类对象,不会对原有String对象造成任何影响StringBuffer是一个可变类,即该类对象的改变不用创建新的对象,只是他的底层会不断地扩容来满足空间需求,他是一个线程安全但效率不高的操作字符串的类StringBuilder同样是一个可变类,即该类对象的改变不用创建新的对象,只有他的底层会不断的扩容来满足空间需求,他是一个线程不安全但效率高的操作字符串的类。原创 2023-01-03 12:59:27 · 84 阅读 · 0 评论 -
java高级编程之枚举类和注解
枚举类用关键字enum来修饰,使用枚举类的前提是其对象是有限个。带有enum的枚举类默认实现了Enum接口,故其默认继承了父类的toString方法,因此我们在自己创建的枚举类中若无特别的需求就不要重写toString方法了。当需要定义一组常量时强烈建议使用枚举类。如果枚举类的对象只有一个,则可以作为单例的实现方式注解就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取并执行相应的处理,通过Annotation程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。原创 2022-12-29 15:42:26 · 235 阅读 · 0 评论 -
Java高级编程之Map集合
Map被称为双列集合,典型的key,value结构。在使用contains等方法时,key所在的类要实现hashCode,equals等方法。原创 2022-12-28 17:46:19 · 587 阅读 · 0 评论 -
java高级编程之Collection集合
ArrayList的底层是基于数组实现的,而LinkedList的底层是基于链表实现的,对于频繁的插入删除操作,LinkedList的效率比ArrayList的效率要高。2.2.1 在Set接口中存储的数据都是无序,不可重复的,注意往Set集合中添加数据时,该数据所属的类都要实现HashCode和equals方法。集合相当于一个容器,一个存储数据的容器,在未加泛型之前,里面存储的是Object类型的数据,在加入泛型之后,里面存储的数据就要按照参数化类型要求存储。1.同:三者存储的数据都是有序的,可重复的。原创 2022-12-28 09:48:07 · 264 阅读 · 0 评论 -
java高级编程之泛型
个人对泛型的理解:就像公厕中的男女厕所,男的进男厕所,女的进女厕所。反省也是如此,泛型就是类型参数化,就好比我建了一栋房子,在门口竖了个牌子说:我会让我的亲戚朋友进来,不允许陌生人进来。}}}}}}}}}}}}在自定义泛型类时需要注意,在类或接口上声明的泛型,在本类/本接口即代表某种类型,可以作为非静态属性的类型,可以作为非静态方法的返回值类型,,可以作为非静态方法的参数类型。但是静态方法中不能使用泛型。原创 2022-12-26 17:52:52 · 143 阅读 · 0 评论 -
java高级编程之网络编程
TCP:可靠的传输协议,建立的是可靠的连接,在连接时需要经过三次握手,在释放连接时需要经历四次挥手,可以传输大容量的数据(就像日常生活中的打电话,必须要两个人的手机都在身边且都可以打得通才可以进行通话)UDP:不可靠的传输协议,建立的是不可靠的连接,以数据包的形式传递数据,每个数据包的大小为64K,可以发送多个数据包。原创 2022-12-25 11:07:38 · 122 阅读 · 0 评论 -
java高级编程之IO流
缓冲流的使用过程与节点流的使用过程极其相似,相较于节点流,其复制速度显著加快,对大容量的文件其效果更为显著。序列化:将java对象转换成与平台无关的二进制流,并存储在磁盘上。6.2 FileReader和FileWriter的使用(实现文本文件的复制)反序列化:将磁盘上的二进制流还原为内存中的java对象。3.可序列化类中的基本类型也要是可序列化的。1.实现Serializable接口。6.3四个缓冲流的使用。6.4 转换流的使用。原创 2022-12-24 13:27:46 · 152 阅读 · 0 评论 -
java高级编程之反射
就像我上面所画的图,反射就相当于一个逆过程,比如我们正常的创建一个对象是通过 但如果我们想通过反射创建一个对象就需要这样 1.2对反射的深入理解 能够分析类能力的程序称为反射,反射机制的功能极其强大反射可以用来: 1.在运行时分析类的能力 2.在运行时检查对象,例如编写一个适用于所有类的toString方法 3.原创 2022-12-07 12:21:51 · 395 阅读 · 0 评论