- 博客(15)
- 收藏
- 关注
原创 类加载器-反射-模块
缓存机制:保证所有加载过的类都会被缓存,当程序需要使用某个类对象时,类加载器先从缓存区中搜索该类,只有当缓存区中不存在该类对象时,系统才会读取该类对应的二进制数据,并将其转换成类对象,存储到缓存区。父类委托:就是当一个类加载器负责加载某个Class时,先让父类加载器试图加载该类,只有在父类加载器无法加载该类时才尝试从自己的类路径中加载该类。全盘负责:就是当一个类加载器负责加载某个Class时,该类所依赖的和引用的其他类也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入。
2023-03-24 15:03:42 101
原创 Lambda-函数式接口-Stream流
default Consumer<T> andThen(Consumer after):返回一个组合的Consumer,依次执行此操作,然后执行after操作。注意事项:默认方法不是抽象方法,所以不强制被重写,重写的时候去掉default关键字;如果代码块的语句只有一个,可以省略大括号和分号,如果有return,return也要省略。如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类。如果接口中多于一个抽象方法,只能使用匿名内部类,而不能使用Lambda表达式。
2023-03-24 08:53:18 124
原创 网络编程/.
3.5TCP通信程序练习5(数据来自文本文件接受服务器反馈,服务器数据写入文本文件给出反馈,代码用线程封装,为每一个客户端开启一个线程)3.4TCP通信程序练习4(数据来自文本文件,服务器数据写入文本文件)1.InetAddress的使用:此类表示Internet协议地址。3.2TCP通信程序练习2(客户端数据来自键盘录入)3.3TCP通信程序练习3(服务器数据写入文本文件)3.1TCP通信程序练习1(服务器给出反馈)
2023-03-22 09:30:52 98
原创 线程(生产者和消费者案例)
StringBuffer:线程安全,可变的字符序列,从JDK5开始,被StringBuilder替代,通常应该使用StringBuilder类,因为它支持所有相同的操作,但它更快,因为它不执行同步。优先级高仅仅表示线程获取的CPU时间片的几率高,但是要在比较次数比较多,或者多次运行的时候才能看到你想要的结果。抢占式调度模型:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个,优先级高的线程。分时调度模型:所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间片。
2023-03-20 21:59:08 112
原创 I \ O流
BufferedWriter:将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入,可以指定缓存区大小,或者可以接受默认大小。它可以是存在的,也可以是不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的。BufferedOutputStream:该类实现缓冲输出流、通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用。如果数据通过Windows自带的记事本打开,我们还可以读懂里面的内容,就使用字符流,否则使用字节流。
2023-03-16 19:44:54 44
原创 -集合进阶-
Iterator iterator():返回此集合中元素的迭代器,通过集合的iterator()方法得到;迭代器是通过集合的iterator()方法得到的,所以说它是依赖于集合而存在的。产生原因:迭代器遍历的过程中,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致。元素有序,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方式取决于构造方法。参数化类型,将类型由原来的具体的类型参数化,然后在使用/调用时传入具体的类型。
2023-03-08 20:58:01 70
原创 基本类型包装类/Date类/异常处理
日期和时间格式由日期和时间模式字符串指定,在日期的时间模式字符串中,从‘A’到‘Z’以及从'a'到'z'引号的字母被解释为表示日期或时间字符串的组件的模式字母。所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常。Java中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常。把异常的名称,异常原因及异常出现的位置等信息出现输出在了控制台,程序停止运行。y----年,M---月,d---日,H---时,m---分,s---秒。
2022-10-28 16:46:24 1551
原创 多态、抽象类及冒泡排序
局部内部类:局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类的成员,也可以访问方法内的局部变量。在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。2.类和接口的关系:实现关系,可以单实现多实现,还可以在继承一个类的同时实现多个接口。3.接口不能实例化,如果要实例化,参照多态方式,通过实现类对象实例化,这叫接口多态。匿名内部类:前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。
2022-09-23 17:47:50 157
原创 继承(study!)
假设有两个类A和B,如果满足A是B的一种,或者B是A的一种,就说明他们存在继承关系,这个时候就可以使用继承来体现,否则就不能滥用继承,例如苹果和水果,猫和动物。应用:当子类需要父类的功能,而功能主体子类有自己特有的内容时,可以重写父类中的方法,这样既沿袭了父类的功能,又定义了子类特有的内容。概述:使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦了,为了简化带包的操作,java提供了导包的功能。继承是面向对象的三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。
2022-09-12 14:00:09 90
原创 方法(虽然但是,摆烂真的很爽)
一、方法概述方法(method):是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集注意:1.方法必须先创建才可以使用,该过程称为方法定义2.方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用二、 方法的定义和调用2.1 方法定义public static void 方法名(){ //方法体}2.2 方法调用格式:方法名()注意:方法必须先定义后调用,否则程序将报错三、 带参数方法的定义和调用//单个参数public
2022-05-28 08:42:09 140
原创 数组(每天一遍,摆烂再见)
一、数组定义格式1.1 什么是数组 数组(array)是一种用于存储多个相同类型数据的存储模型1.2 数组的定义格式格式一:数据类型 [ ] 变量名 格式二:数据类型 变量名 [ ]范例 : int [ ] arr 范例 : int arr [ ]二、数组初始化之动态初始化动态初始化:初始化时只指定数组长度,由系统为数组分配初始值格式:...
2022-05-25 17:03:09 91
原创 运算符,数据输入,分支,循环,随机数
一、运算符1.赋值运算符:扩展的赋值运算符隐含了强制类型转换public class Operator{ public static void main(String[] args){ short i = 10; i += 20 ; // i=(short)(i+20); System.out.println(i); }}2.自增自减运算符符号 作用 说明 ++ 自增 变量值加1
2022-05-24 17:09:05 72
原创 浅学Java第一天
一、常用的DOS命令操作 说明 盘符名称: 盘符切换。e:回车,表示切换到e盘 dir 查看当前路径下的内容 cd 目录 进入单级目录 cd .. 退回到上一级目录 cd 目录1\目录2\... 进入多级目录 cd \ 退回到盘符目录 cls 清屏 exit 退出命令提示符窗口 二、常量常量类型 说明 举例 字符串常量 用双引号括起来的内容 “HelloWorld” 整数常量
2022-05-15 15:26:36 156 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人