- 博客(53)
- 收藏
- 关注
原创 【Java基础】线程的五大状态
如果一个线程执行了sleep(睡眠)、suspend(挂起)等方法,失去所占用资源之后,该线程就从运行状态进入阻塞状态。当线程对象调用了start()方法之后,该线程就进入就绪状态。就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度。处于运行状态的线程最为复杂,它可以变为阻塞状态、就绪状态和死亡状态。类或其子类建立一个线程对象后,该线程对象就处于新建状态。一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。如果就绪状态的线程获取 CPU 资源,就可以执行。
2024-06-06 10:41:20 420
原创 【Java基础】静态代理
静态代理的缺点是需要为每一个目标对象编写代理类,且在代理类中需要显式指定目标对象,增加了开发的工作量。代理对象持有目标对象的引用,并在调用目标对象的方法之前或之后执行一些额外的操作。在静态代理中,代理对象和目标对象都必须实现同一个接口或者是同一个父类。这种方式可以在不修改目标对象的情况下扩展和增强目标对象的功能。静态代理是在编译期间就确定代理关系的代理模式。
2024-06-04 19:24:46 240
原创 【Java基础】线程的概念、特点及创建线程的三种方式
如果是模拟出来的多线程,即在一个cpu的情况下, 在同一个时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的错觉。◆ 在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为干预的;运行垃圾回收线程,是一个守护线程,优先级低,主线程的其他代码优先运行,主线程结束时,即使它没有回收完,也要结束。接口的类是任务类,线程和任务分别面向对象,那么线程执行的任务不再是固定的了。的类,既是线程类,同时也是任务类,用该类创建的线程执行的任务是固定的;
2024-06-04 19:21:24 1385
原创 【Java基础】IO流(5) —— 序列流、内存流
类中会有一个序列号,该序列号是由类中成员计算出来的,会随着类中成员的变化而变化。在反序列化时会根据该序列化去找响应的字节码,如果没找到则不能反序列化。反序列化:还原成对象,还原时需要类的字节码(*.class)对象的序列化:把对象进行存储或网络传输。我们可以给类添加一个固定的序列号。,其不受类中成员变动影响。
2024-05-23 10:30:00 241 3
原创 【Java基础】IO流(3) —— 字节流
标准输入: System.in、InputStream。标准输出:System.out、PrintStream。
2024-05-22 00:22:26 174
原创 【Java基础】IO流(2) —— 字符流
从文本文件中读取数据:因为是文本文件所以使用字符流,又因为是读取,所以使用字符读取流。模拟BufferedReader,自定义一个MyBufferedReader。是为了提高读或写的效率,缓冲流本身不具备读或写的功能,使用缓冲流必须结合。BufferedReader(Reader r):字符缓冲输入流。BufferedWriter(Writer w):字符缓冲输出流。因为是文件,所以使用Reader的子类FileReader。一次读一行,返回的一行不包括换行符。提高效率,提供一个缓冲区。
2024-05-21 23:58:01 300
原创 【Java基础】IO流(1) —— 简介
设备:键盘、控制台、硬盘、内存、网络、打印机……IO:Input Output 输入输出。作用:实现设备之间的数据传输。
2024-05-21 23:55:49 192
原创 【Java基础】集合(6) —— 包装类Collections
最根本的是Collections是一个类,Collections 是一个包装类,Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素, 而另一些则不允许,一些 collection 是有序的,而另一些则是无序的。Collections是一个集合框架的帮助类,里面包含一些对集合的排序,搜索以及序列化的操作。本身是一个Interface,里面包含了一些集合的基本操作。Collection接口时Set接口和List接口的父接口。
2024-05-17 11:59:15 432 2
原创 【Java基础】集合(5) —— Map
底层数据结构是哈希表,保证键唯一的原理和HashSet一样 int hashCode() boolean equals(Object obj)名字年龄相同的是同一个键 重写 int hashCode() boolean equals(Object obj)保证键唯一:compareTo方法的返回值为0,或compare方法的返回值为0.则认为是相同的键。键代表了值,键和值是对应的,允许键为null,值为null。Map集合,键和值固定是String类型的。当存在映射关系时:每个学生对应一个住址。
2024-05-17 11:59:02 631
原创 【Java基础】集合(4) —— 泛型
jdk中,类名后带有的,是可以使用泛型的类(E是任意的,我们常用E、T)在定义类的时候定义了泛型,使用该类时才可以使用泛型。定义接口时定义了泛型,该接口才能使用泛型。编译正常,运行出问题了,程序不够安全。
2024-05-16 16:46:58 372 1
原创 【Java基础】集合(2) —— List
(集合中存储对象的顺序和使用add方法添加对象的顺序一致),存储的对象是。前缀:Linked,说明该集合在存储数据时,底层数据结构是链表。List的特有的功能: 都是可以操作索引的功能。 链表的特点是便于添加和删除,不便于查找。后缀:List,说明存储的数据有序,可重复。
2024-05-15 16:35:48 886 1
原创 【Java基础】集合(1) —— Collection
每种集合存储数据的方式不同,使用的数据结构不同,有各自的优缺点在项目中根据底层的数据结构选择适合的集合使用。
2024-05-15 16:26:02 1078
原创 【Java基础】lambda表达式
函数式接口中的方法的参数及返回值和被引用的方法的参数及返回值一致。函数式接口中的方法的返回值是一个引用类型,参数和构造方法一致。lambda表达式的练习。
2024-05-14 19:11:26 458 1
原创 【Java基础】枚举类的方法及应用
enum中构造方法默认被private修饰SPRING("春季"),SUMMER("夏季"),AUTUMN("秋季"),WINTER("冬季");Season(){} //默认就是privateSeason(String desc){//默认就是private……………………
2024-05-14 19:01:55 1395 1
原创 【Java基础】时间相关的类
需要引入类包java.util.Date用构造方法得到当前时间用构造方法将long类型的时间值转成日期得到当前时间的毫秒值把Date类型转为long类型。
2024-05-09 23:36:14 307
原创 【Java基础】Java异常处理机制超简单的!!
程序在运行时出现的不正常情况java把程序运行时出现的各种不正常情况提取属性和行为进行描述,从而出现了各种异常类,也就是异常被面向对象了。异常名称、异常信息、异常发生的位置。
2024-05-08 14:46:04 1069
原创 【Java基础】字符串的内存情况及应用场景
对应的字符一一对比(第一个和第一个比,第二个和第二个比,……),当出现第一对互不相同的字符时,哪个字符大哪个字符串就大;左边的大于右边的返回大于0的数,左边的小于右边的返回小于0的数,左边的等于右边的返回0。将若干个字符串拼接到一起,在拼接的时候,元素与元素之间以指定的分隔符进行分隔。模拟trim方法,将字符串两端的空格去掉String trim()。返回最后一次出现的指定子字符串在此字符串中的索引。返回最右边出现的指定子字符串在此字符串中的索引。,原字符串并没有被修改,字符串是不能被修改的。
2024-05-07 15:55:35 1076
原创 【Java基础】内部类:成员内部类、静态内部类、局部内部类、匿名内部类
局部内部类就像是方法里面的一个局部变量一样,是不能有 public、protected、private 以及 static 修饰符的。局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。非静态方法既可以使用静态成员,也可以使用非静态的成员。练习:匿名内部类、重写toString。随着类的加载就加载到静态区,可以。静态方法只能使用静态成员。的子类对象,必须要有父类。
2024-05-07 15:11:10 376
原创 【Java基础】设计模式——单例设计模式
单例设计模式(Singleton Design Pattern)是一种创建型设计模式,它确保⼀个类有且只有⼀个实例,并提供一个全局访问点来访问这个唯一实例。单例模式主要解决的是,⼀个全局使⽤的类频繁的创建和消费,从⽽提升整体的代码性能。
2024-05-06 14:02:41 548 2
原创 【Java基础】三大特性——多态
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。实现一个功能时,功能的一部分是确定的,一部分是不确定,确定的部分还会用到不确定的部分,那么就把不确定的部分暴露出去,让子类去实现。通常通过重写toString方法,来返回有用的数据。instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。确定的部分:记录一个开始时间,记录一个结束时间,结束时间 - 开始时间。对类存在的语法,对接口也存在。,返回对象的字符串表示形式。判断两个人是否是同龄人。
2024-05-05 00:26:52 445
原创 【Java基础】三大特性——继承
对子类提取共性的过程中,子类对某一个或多个行为有不同的实现方式,父类无法确定该如何实现,则父类不实现(不加大括号)。这种没有实现的方法就叫抽象方法,需要被修饰为abstract,含有抽象方法的类就是抽象类,也要用abstract修饰。抽象类不能创建对象,无法调用抽象方法,只能做父类。一个类继承了抽象类,那么这个类中也有抽象方法,所以这个子类也是抽象类,只有子类重写了该抽象方法,才不是抽象类。abstract class 犬科动物public void 吃()
2024-05-05 00:18:06 796
原创 【Java基础】成员变量和局部变量的区别
局部变量和成员变量同名时,优先使用成员变量,因此需要使用this来指定对象的成员变量。,总是指向当前正被使用的对象(当前用的对象是哪个,this会自动指向该对象)java自动在Person类中加入了一个构造函数,用来创建对象。若自己在类中写了构造函数,那么系统就不会自动加入空参的构造函数。构造函数的调用,使用this,且必须写在构造函数的第一行。一个类中可以有多个构造函数(重载:函数名称相同,但是。java内部定义好的一个。构造函数只能用来创建对象。
2024-05-04 23:52:33 365
原创 【Java基础】面向对象是什么
因为main属于Demo1,所以先加载Demo1.class到内存中的方法区。加载Car.class进入方法区。**加载的原则:**用到哪个类,就先加载其字节码到方法区。对象是由**编译后的字节码(.class)**创建的。调用run方法,run方法入栈,调用完立刻出栈。
2024-05-03 00:25:04 303
原创 【Java基础】数组
arr中存储的地址被一个新的数组的地址覆盖了。因此之前的数组就成了垃圾,等待垃圾回收线程回收。变量之间的赋值,brr中存储了和arr相同的数值,所以和arr指向相同的数组。这时arr不再指向长度为8的数组,但是brr依然指向它,所以该数组不是垃圾。arr是一个局部变量,存储的是数组在堆中的首地址。数组的初始化:定义数组中存放的数据。
2024-05-03 00:05:50 288
原创 【Java基础】函数调用过程
函数是需要被调用的,当调用函数时,会去执行函数内部的代码,内部的代码全部执行完,会再回到调用该函数的位置,继续向下执行。函数执行完,在栈中开辟的内存会立刻释放。
2024-05-02 23:49:51 654 1
原创 【Java基础】特殊语句:判断语句 & 循环语句
如果default语句在所有case最后,此时可以不加break 如果default语句之后还有case语句,如果不加break,则default语句执行过之后会继续下面的case语句,此时必须要在default之后加break语句,不过这种default用法是不推荐的,default顾名思义是缺省情况,只有任何条件都不匹配的情况下才会执行,所以应该将default语句放在所有case结束之后。先计算小括号中的值,然后依次和case后面的值比较p和哪个case后面的值相同了,就执行哪个case后面的语句;
2024-05-01 14:00:00 145
原创 【Java基础】特殊字符&运算符
方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。&&:短路与,如果左边的表达式的值为false,那么就不在计算右边表达式的值了。||:短路或,如果左边的表达式的值为true,那么就不在计算右边表达式的值了。&:如果左边的表达式的值为false,仍然计算右边表达式的值。|:如果左边的表达式的值为true,仍然计算右边表达式的值。
2024-05-01 10:45:00 659
原创 【Java基础】数据类型及类型转换
编码:ASCII ISO8859-1 GBK UTF-8(3个字节)由于Java是强类型语言,所以要进行混合运算的时候,需要用到类型转换。运算中,不同类型的数据先转化为同一类型,然后进行运算。1.存储的是在堆中开辟内存的数据的首地址。在把高容量转换到低容量的时候,强制转换;浮点类型(小数默认是double型的)操作比较大的数时,要注意溢出问题!2.作为参数传递的是数值(地址值)不能把对象类型转换为不相干的类型;整数类型(整数默认是int型的)每个字符都有其编码(数值)2.作为参数,传递的是数值。
2024-04-30 14:30:00 968 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人