自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java反射与设计模式

Properties作为配置文件读取工具,和反射、工厂模式绑定使用,是后端开发读取配置的基础组合,需要熟练掌握load加载、getProperty取值流程。反射提供动态操作类的能力,单例、工厂等设计模式规范对象创建逻辑,二者结合才能写出低耦合、高拓展性的工程代码,是从初级开发进阶中级开发的核心知识点。• 类对象(Class对象):类加载后生成,唯一封装该类全部结构(包名、父类、属性、方法、构造器),一个类仅存在1份。行业通用、反复复用的代码解决方案,共23种,用于规范化代码结构、降低耦合。

2026-06-16 20:57:59 250 1

原创 Java IO

很多初学者会和PrintWriter打印对象混淆,前者完整保存对象全部属性(可还原对象),后者只是打印字符串,本质完全不同,开发中持久化对象才用序列化,单纯输出文本不用。笔记里的桥转换流就是标准解决方案:先用字节流绑定文件,再通过OutputStreamWriter/InputStreamReader手动指定UTF-8编码,从根源统一编解码,避免乱码,处理中文文本时必须掌握这套写法。实际开发中,文件复制、多媒体传输一律优先用字节缓冲流,纯文本读写才用字符缓冲流,二者分工要分清,不能混用。

2026-06-16 20:56:08 246 1

原创 Java16 多线程知识点

◦ Lock接口:比synchronized更灵活,ReentrantLock是实现类,lock()获取锁、unlock()释放锁(建议在finally中释放)◦ ConcurrentHashMap:分段锁(JDK7)/CAS+Synchronized(JDK8)实现,锁粒度小,并发效率高,不允许null键值。◦ void join():让其他线程优先执行,当前线程进入无限期等待(如主线程中调用t.join(),主线程等待t线程执行完毕再继续)◦ 数据:栈空间独立(每个线程有独立的栈空间,存储局部变量);

2026-06-14 00:12:28 182 1

原创 Java14 异常知识点

但catch中可以处理任意运行时异常,不管try中是否有可能出现此类异常。◦ RuntimeException(运行时异常/未检查异常):与RuntimeException有直接或间接继承关系的异常类。◦ 非RuntimeException(非运行时异常/已检查异常):与RuntimeException无任何继承关系的异常类。• Java中的异常沿着方法的调用链进行反方向传递,最终传递给JVM,导致程序被终止。3. 子类不能抛出比父类更多、更宽泛的异常(可以抛出更少、更窄的异常,或不抛出异常)。

2026-06-13 23:56:57 165 2

原创 Java13 集合知识点

◦ LinkedHashSet:HashSet的子类,按添加顺序存储元素,同时保证不重复(需重写hashCode()和equals())多个泛型标识需全部指定或全部不指定。Object set(int index, Object o) 修改指定下标对应元素为o对象,返回被修改之前的元素。boolean contains(Object o) 判断集合中是否包含o元素,包含返回true,否则false。◦ Collection:是Java集合体系的父接口,包含List、Set等子接口,定义了集合的通用方法。

2026-06-13 23:53:56 190 1

原创 Java SE 第三个阶段:API

(3) boolean equals(String str):比较两个字符串内容是否完全相同,开发比较字符串内容必须使用equals,不能用==。(2) boolean contains(String str):判断当前字符串是否包含子串str,包含返回true。(6) String[] split(String str):按照指定分隔符拆分字符串,返回String数组。StringBuilder append(String str):完成字符串拼接,返回自身对象,支持链式拼接。//除法:参数1=除数;

2026-06-11 16:29:29 231 1

原创 java11 内部类

3. 核心特点:内部类可直接访问外部类所有成员(包括private私有成员),同时不会破坏外部类封装性。2. 编译文件:内部类编译后单独生成 .class 文件,命名格式:外部类名$内部类名.class。3. 访问权限限制:只能访问外部类的静态成员(静态属性/静态方法),无法直接访问外部类实例成员。1. 成员内部类不能写static方法,静态内部类不能直接访问外部类非静态成员。2. 访问外部类成员:外部类名.this.成员,用来区分内外类重名属性/方法。//匿名内部类继承MyClass,重写method。

2026-06-11 16:23:54 290 1

原创 Java10 接口

(2) 注意:一个类同时实现多个接口,如果这个类不想成为抽象类,则必须实现所有接口中所有方法;2. 注意:实现类实现接口,如果实现类不想成为抽象类,则需要实现(覆盖)接口中所有的方法;2. 注意:遇到接口回调的应用,开发人员需要关注的是根据接口规范,给予接口的实现部分。1. 接口:是一种标准、规范,是接口的实现者和接口的使用者都必须遵循的约定。接口定义好之后,将接口的实现者和接口的使用者分离,借助多态,降低各模块之间的耦合度。实现类实现接口中的方法时,方法的访问修饰符必须是public的访问权限。

2026-06-10 00:58:41 172

原创 Java9三大修饰符

b. 作用:类加载的时候执行,用于给静态属性完成初始化赋值;(4) 继承规则:子类继承抽象类后,如果不想自身也变成抽象类,必须重写覆盖父类所有抽象方法;b. 非静态方法:既可以访问本类非静态成员(实例变量、普通成员方法),也能直接访问本类静态成员。(1) final修饰的变量属于常量,仅允许赋值一次,赋值完成后无法修改值,但可以正常读取使用。(3) 核心特点:静态属性属于整个类所有,为全部对象共享,和创建多少个实例对象无关。补充:静态方法如果要访问非静态成员,只能先创建对象,通过对象名调用非静态内容。

2026-06-10 00:55:53 232

原创 Java8 面向对象三大特性笔记(封装、继承、多态)

和this()不能同时出现。• 构造方法不能被继承:子类构造方法名必须和子类名一致,和父类构造方法不匹配。• 父类类型的引用指向子类对象:父类名 引用名 = new 子类名();1. 向上转型(自动):子类引用赋值给父类引用,直接完成(多态的基础)• 运行时看子类:如果子类重写了父类方法,执行子类重写后的方法。• super(实参):在子类构造方法中调用父类有参构造方法。• 概念:在子类中定义和父类同名、同参数、同返回值的方法。• super():在子类构造方法中调用父类无参构造方法。

2026-06-09 12:48:43 250 2

原创 Java7 面向对象

成员变量可以和局部变量重名,方法内优先使用局部变量,想要访问成员变量需要加this.。• 引用类型变量赋值:传递对象堆地址,多个引用指向同一对象时,一个引用修改属性,其他引用访问都会看到修改后的结果。2. 面向对象:以现实事物(对象)为核心,抽取事物封装成类,依靠对象之间协作完成功能,侧重谁来做。2. 存储特点:引用变量存放在栈内存,存储的值是堆内存中对象的首地址,并不直接存对象本身。• this.属性名:访问当前对象的成员变量,解决成员变量和局部变量重名问题。客观存在的具体事物,Java中万物皆对象;

2026-06-09 12:41:18 380

原创 Java6 数组笔记

• 直接写数据:int[][] a = {{1,2}, {3,4,5}, {6}};• 直接写好要存的数据:int[] a = {1,2,3,4,5};◦ 取数据:数组名[下标] 比如 System.out.println(a[0]);• 获取长度:a.length是行数,a[0].length是第0行的列数。• 声明+分配空间:int[][] a = new int[3][4];• 声明+分配空间一步到位:int[] a = new int[5];

2026-06-08 20:11:39 184 1

原创 Java5 函数学习

为了解决这类重复代码的问题,我们可以把重复的逻辑封装成一个独立的代码块,给它起一个名字,之后只需要通过这个名字就能重复调用这段逻辑,这就是函数的核心思想。• 函数名:就是给这段代码起的名字,比如printLine,见名知意,按驼峰命名法写就行(比如printHello,第一个单词小写,后面单词首字母大写)函数就是Java里的“代码打包工具”,核心就是定义(写好要做的事)+ 调用(用的时候喊名字),记住定义格式、参数和返回值的规则,多写几次就熟了。// 直接写函数名+括号就行,想调用几次就写几次。

2026-06-08 20:06:42 165 1

原创 JAVA4 循环结构

再次判断②条件,成立就继续执行④和③,直到条件不成立(结果为false),结束循环,执行循环之后的内容。2. 执行原理:先判断循环条件是否满足(布尔表达式结果为true),满足就执行循环体,同时改变循环变量;接着继续判断条件,满足就继续执行,直到条件不满足(结果为false),结束循环,执行循环后面的内容。开发中通常定义在for()中,这样变量只能在循环中使用,循环结束就被收回,节省空间。2. 循环的组成:循环变量的初始化、循环条件、循环变量改变(递增/递减)、循环体(重复执行的代码)。

2026-06-07 20:05:48 162 1

原创 Java 3 分支结构

执行逻辑:从上到下依次判断,碰到第一个结果为true的条件就执行对应代码块,剩下分支不再判断;2. break作用:跳出整个switch结构,不加break会出现case穿透,继续向下执行后续case代码。3. default:没有固定书写位置,全部case都匹配失败时才执行default内容,一般习惯性写在末尾。执行逻辑:条件true走if代码块,false固定走else代码块,两个分支必然执行其中一个。② 作用域:从定义这一行开始,到所在大括号代码块结束,出了代码块变量失效;case 值1:语句1;

2026-06-07 19:55:47 178 1

原创 Java 变量、数据类型与表达式

1. 用单引号包裹单个字符,char c='A';1. 数值提升顺序:byte/short/char → int → long → float → double。代码报错,b+1运算后自动提升为int,无法直接赋值给byte。\n代表换行、\t代表水平制表空格、\\打印单个反斜杠、\'打印单引号、\"打印双引号。只有true和false两个取值,不能和数字0、1互相转换,和C语言布尔语法不一样。编译正常,底层等价b=(byte)(b+1)。

2026-06-06 18:02:55 245 2

原创 java环境搭建整理笔记

2. Path:配置JDK/bin目录,通用写法:%JAVA_HOME%\bin,让系统全局识别java、javac命令。3. classPath:指定类文件查找路径,常规配置.,代表优先在当前文件夹寻找class文件。5. 单源文件规则:一个.java可以写多个类、多个main,每个类编译后单独生成class文件。1. JVM:Java虚拟机,屏蔽不同操作系统的底层差异,是跨平台核心。2. main():程序入口方法,一个类里面只能写1个main方法。System.out.println("内容");

2026-06-06 17:50:57 271 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除