- 博客(43)
- 收藏
- 关注
原创 250226-Lambda 表达式
java8引入了Lambda表达式,它可以简洁地实现函数式接口。Lambda表达式的语法结构为:(parameters) -> { statements;},->简化 Lambda 表达式:如果 Lambda 表达式的方法体只有一条语句(比如打印语句),可以省略花括号和return关键字(如果有返回值)。
2025-02-26 14:25:59
288
原创 250224-多线程
线程状态转换的核心是方法调用(如wait()sleep()join())和锁竞争。重点关注WAITING和的区别:有无超时、是否需要显式唤醒。理解锁的释放规则(wait()释放锁,sleep()不释放锁)。
2025-02-24 10:55:37
1282
原创 250219-拾荒者
是 Java 标准库中的一个高效处理字符串拼接的类,位于。包下,因此使用时无需额外导入。,即可以动态地添加、删除或修改其中的字符内容。
2025-02-19 15:54:22
243
原创 250219-注解(annotation)
告诉编译器,使用该方法来覆写父类或者接口中的方法。①覆写的方法在父类或接口中不存在;标识符:@Override。
2025-02-19 13:01:10
300
原创 250214-java类集框架
接口继承自Collection接口,它的实现类包括ArrayList、LinkedList、Vector等list接口的方法比如下面:见第七行的List<Integer> a=new ArrayList<Integer>();这其实是,当然也可以不用转型,直接ArrayList<Integer> a=new ArrayList<Integer>()这样,都可以。前者呢,优点是变量a可以引用任何list实现类的对象,比如LinkedList、Vector的对象,而不需要修改变量声明的类型,例如。
2025-02-14 15:21:49
768
原创 250213-异常exception
(3)文件未找到异常(FileNotFoundException):当程序试图打开一个不存在的文件进行读写时将会引发该异常。(4)数组下标越界异常(ArrayIndexOutOfBoundsException):对于一个给定的大小的数组,如果数组的索引超过上限或低于下限都造成越界。(2)空指针异常(NullPointerException):没有给对象开辟内存空间却使用该对象时会出现空指针异常。(1)算术异常(ArithmeticException):当算术运算中出现了除以零这样的运算就会出这样的异常。
2025-02-13 20:10:20
386
原创 250213-项目根目录、源代码根目录、资源文件根目录三者关系
│ │ │ ├── Main.java # 主类。│ │ ├── config.properties # 配置文件。│ │ └── images/ # 图片文件夹。│ │ ├── java/ # 源代码根目录。│ │ └── resources/ # 资源文件根目录。│ │ │ └── com/ # 包结构开始。
2025-02-13 11:15:54
375
原创 250125-package
包就是文件夹,作用是在大型项目中,避免不同人的编写的java文件出现同名进而导致报错;想象一个场景,在一个根目录中,每一个人都有自己的一个java文件夹,他可以将自己编写的文件放在该文件夹里,即使在不同的文件夹里出现同名文件,但是也不影响程序的运行。
2025-01-25 21:11:28
552
原创 250123-对象的比较(equals()和==)
见,使用构造函数创建的两个对象,见下例,即使输入参数是相同的,比较结果仍是不同,因为,在任何情况下使用关键字new都会开辟出一个新的内存空间。
2025-01-23 19:24:22
535
原创 20250122-正则表达式
表示一位非字母、数组、_,等价于“[^a-zA-Z0-9]”表示一位字母、数字、_,等价于“[a-zA-Z0-9]”表示任意一个字母:[a-zA-Z](大写或小写)正则1正则2:正则2紧跟在正则2后面操作;正则{n,m}:表示此正则出现n-m次。正则1|正则2:或的关系,满足其一即可。表示任意一个非字母:[^a-zA-Z]正则*:表示此正则可出现0、1和多次;正则{n,}:表示此正则出现n次以上;:表示此正则可出现0次或1次;正则+:表示此正则可出现1次或多次;正则{n}:表示此正则正好出现n次;
2025-01-22 15:37:19
1250
原创 20250110-System类
java不支持全局变量和方法,因此将与系统相关的重要方法和变量放在了一个统一的类中,即System类,其中所有的成员都是静态的。
2025-01-10 02:08:29
402
原创 20250107-基本数据类型间转换
见下面代码中的11、12、17行,11行的表达式计算过程中自动完成了不同类型的数据转换,都转换成了double类型,12行创立了一个double数组,其实是进行了强制类型转换,再进行17行的表达式运算,与11行的运算结果是一样的。1、占字节少的数据类型向占字节多的数据类型转换(大鱼吃小鱼),如float➡double,short➡int➡long(64位)。4、表达式中若有某个操作数为double类型,则其他操作数也转为double类型。3、int类型转为float类型。2、字符类型转为int类型。
2025-01-07 13:09:20
168
原创 20250103-Object类
是java所有类的超类,所有的类从根本上都继承自Object类,是唯一没有父类的类。如果一个类没有明确标识继承某一个类,那么它默认继承自Object类。Object类的方法适用于所有类。
2025-01-03 01:44:28
661
原创 20241222-抽象类
无构造方法版Student sd=new Student(17,"学生","doky");sd.talk();wk.talk();int age;System.out.println("你们好哇,我是"+occopation);System.out.println("你们好哇,我是"+occopation);/*输出结果你们好哇,我是学生你们好哇,我是teacher*/有构造方法版Student sd=new Student(17,"学生","doky");
2024-12-22 15:06:47
621
原创 20241219-return的用法
比如下面的例子,如果返回的值设为int类型,但是返回的null,则报错。3. 返回null(返回的值须是引用数据类型)1. 返回属性值(基本数据类型)2. 返回对象(引用数据类型)
2024-12-19 10:54:10
315
原创 20241218-包装类/基本类型和String类型间转换
后者呢,优势在于以基本数据类型的操作为主要应用场景时更快捷,因为避免了对象创建和垃圾回收的开销。等,而后者只有索引访问和长度访问两种操作;前者有更更丰富的操作方法,比如。
2024-12-18 17:45:44
399
原创 20241213-引用传递
changeReferValue方法对in和arr都修改了内容,但是main方法内的in的内容依然没变,而arr的内容被修改了,为什么呢?因为这是独属于对象的特性,基本数据类型都不具有这种特性,数组是对象。在方法内对数组进行的所有操作都会映射到原数组中,同理,也可拓展至其他对象。更深的说,这涉及引用传递的知识,引用传递就是把堆内存的对象地址交由栈内存的多个变量所指向,其实就是给同一个对象换别名的操作。
2024-12-13 22:50:55
567
原创 20241213-局部变量和全局变量的思考
2. 成员变量、局部变量重名的情形下,在方法内对该重名变量的运算是默认针对局部变量的,而不是成员变量,除非特别指明是针对成员变量进行的。1. A方法的局部变量a作为B方法的传入参数,在B方法内对该传入参数的运算不会对A方法的局部变量a产生影响。for循环或while循环、方法或方法参数列表里定义的局部变量,在其内的代码块执行完毕后就被销毁了,不能再用了。3. 接上面第2条,特别指明是针对成员变量进行的运算。
2024-12-13 22:19:17
718
原创 20241210-null的用法
在定义引用类型变量(比如数组、比如class,比如接口)时,无法给出明确的值,就可以用null来代替。引用类型变量只能接收引用类型数据,也就是对象。不可以将null赋给基本类型变量。见下面代码倒数第五行。
2024-12-10 22:40:49
143
原创 20241208-对象/属性/方法的操作
就已经学到的来说,属性的操作包括定义、初始化(声明的时候就初始化、在静态代码块中初始化、在方法中初始化)、查看(点操作法)、还有是否定义为static类型(这决定了该属性是类的所有对象共享还是对象私有)。对象的操作,按照学习数据结构时的思路,包括创销、增删查改,创建(就是使用构造函数创建对象)、查看(点操作法查看对象的属性和方法)、对象的比较(运算符==、equals()方法)类的组成包括属性和方法,把属性和方法具象化,我们能对属性和方法执行什么操作呢?基本的思路:创销、增删查改。
2024-12-08 20:43:41
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1