![](https://img-blog.csdnimg.cn/014c2caf50ca48cda74811d4e494e774.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaSE
文章平均质量分 73
JavaSE基础语法,面向对象,常用类,网络编程,线程......
小俱的一步步
莫忧莫惧莫回头
展开
-
快速失败“fail-fast”和安全失败“fail-safe”
发现第一个元素可以正常删除,但由于使用for-each循环,底层实际使用的是迭代器遍历当执行for (String s : list)时,Java会隐式地创建一个迭代器,并调用iterator()方法开始迭代。在遍历集合时,不是直接在集合内容上进行访问,而是先复制原有集合内容,在复制的集合上进行遍历,在遍历时,对集合的修改是不会被迭代器检测到,所以不会抛出ConcurrentModificationException异常。正确做法使用迭代器的remove()方法,可正常删除。原创 2024-05-27 17:07:46 · 1128 阅读 · 15 评论 -
多态的实现原理、泛型擦除
当通过父类类型的引用变量调用被子类重写的方法时,虚拟机会根据实际对象的类型来确定要调用的方法版本,而不是根据引用变量的声明类型。可以看到 ArrayList和 ArrayList的原始类型是相同,在编译成字节码文件后都会变成 List ,JVM看到的只有 List,看不到泛型信息,这就是泛型的类型擦除。Java的泛型基本上都是在编译器这个层次上实现的,在生成的字节码中是不包含泛型中的类型信息的,使用泛型的时候加上类型参数,在编译器编译的时候会去掉,这个过程成为类型擦除。原创 2024-03-27 14:52:57 · 762 阅读 · 1 评论 -
Java异常机制
这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。原创 2024-03-27 14:17:50 · 561 阅读 · 0 评论 -
java中的对象克隆(深、浅) 和 类与类之间的关系
整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在, 部分对象不能脱离整体对象而存在。例如,头和嘴的关系,没有了头,嘴也就不存在了。关联对象只是进行地址引用,并没有创建新的对象,只将关联对象的地址指向原始引用对象。继承关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系。成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在。学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。接口与实现类之间的关系,接口与实现类之间的关系。原创 2024-03-16 12:36:06 · 345 阅读 · 0 评论 -
java中将数组转换成字符串
方法1:使用StringBuilder拼接方法2:Arrays.toString();方法三:使用 Arrays.stream()流方法四:使用Stream.of()流原创 2023-10-14 22:32:47 · 5259 阅读 · 7 评论 -
java中lambda表达式之函数式接口
一个只有一个抽象方法的接口(可以包含其他方法默认、私有、静态),需要这种接口的对象时,就可以提供一个lambda表达式。编译器如果发现你标注了这个注解的接口有多于 一个抽象方法的时候会报错的。如果接口是函数式接口,编译通过;原创 2023-10-06 16:01:48 · 206 阅读 · 8 评论 -
Java 内部类& Lambda表达式&Stream
在一个类(宿主类)的内部定义的类(嵌套类)。内部类的分类:内部类一般来说包括以下四种:1.成员内部类2.静态内部类3.局部内部类4.匿名内部类Stream 是 Java8 的新特性,它允许以声明式的方式处理数据集合,可以把它看作是遍历数据集的高级迭代器。(集合/数组中的数据先放到一个对象流中,然后进行各项操作,操作完成后返回我们们需要的数据类型)。stream 与 lambada 表达示结合后编码效率与大大提高,并且可读性更强。原创 2023-02-07 17:38:14 · 265 阅读 · 4 评论 -
Java线程
多个线程同时读写同一份共享资源时,可能会引起冲突。所以引入线程“同步”机制,即各线程间要有先来后到;同步就是排队+锁:几个线程之间要排队,一个个对共享资源进行操作,而不是同时进行操作;为了保证数据在方法中被访问时的正确性,在访问时加入锁机制原创 2023-02-03 12:57:08 · 149 阅读 · 1 评论 -
Java之GUI图形界面( Swing、容器组件、 布局管理器、常用容器、常用组件)
GUI:Graphical User Interface图形用户界面——采用图形方式显示的计算机操作用户界面,Swing概述容器和组件常用容器JFrame:JPanel :常用组件JLabel 标签:JTextField 单行文本:JTextArea 多行文本框:JPasswordField 密码框:JButton 按钮:JMenuBar 菜单栏 、 JMenu 菜单、JMenuItem菜单项:布局管理器 1.FlowLayout流式:2.BorderLayout 边界布局3.GridLayout 网格布局原创 2023-02-04 11:08:59 · 2194 阅读 · 0 评论 -
一张图了解Java集合
Java的集合框架是由很多接口、抽象类、具体类组成的,都位于java.util包中,一张图简单了解Java集合原创 2023-02-04 12:25:00 · 140 阅读 · 0 评论 -
Java网络编程
使用TCP协议前,须先建立TCP连接,形成传输数据通道• 传输前,采用“三次握手”方式,是可靠的• TCP协议进行通信的两个应用进程:客户端、服务端• 在连接中可进行大数据量的传输• 传输完毕,需释放已建立的连接,效率低• 在断开时要进行“四次挥手”原创 2023-02-03 10:07:30 · 161 阅读 · 1 评论 -
基础不牢地动山摇之IO流1(File、FilelnputStream、FileOutputStream)
文件:保存数据的地方文件流:文件在程序中是以流的形式来操作 IO流分类:分类:按操作数据单位不同分为: 字节流(8 bit)二进制文件,字符流(按字符) 文本文件;按数据流的流向不同分为: 输入流,输出流;按流的角色的不同分为: 节点流,处理流/包装流。原创 2023-04-04 21:51:44 · 93 阅读 · 0 评论 -
Java GUI 事件处理及添加对话框
在窗口添加好面板和组件之后,但只是一个界面,不能执行其中的功能,需要添加事件处理来实现相应的功能。用户与GUI组件进行交互就会发生事件,如:按下一个按钮、用键盘输入一个字符、点击鼠标等。1. 一个源(事件源)产生一个事件(事件对象)并把它送到监听器那里,监听器只是简单地等待,直到它收到一个事件,一旦事件被接受,监听器将处理这些事件;2.一个事件源必须注册监听器以便监听器可以接受关于一个特定事件的通知。JOptionPane对话框。例如向文本域添加键盘事件。原创 2023-02-07 14:55:28 · 1763 阅读 · 0 评论