- 博客(30)
- 收藏
- 关注
原创 JavaSE学习笔记25-反射(reflection)
是一种强大的机制,允许程序在运行时检查和操作类、方法、字段等信息。通过反射,可以动态地创建对象、调用方法、访问字段,甚至修改私有成员。以下是反射的常见用法。
2025-02-23 00:00:06
677
原创 javaSE学习笔记24-注解(annotation)
Deprecated:定义在java.lang.Deprecated中,此注释可以用于修辞方法,属性,类,表示不鼓励程序员使用这样的元素,@Override:定义在java.lang.Override中,此注释只适用于修辞方法,表示一个声明打赏重写超类中的另一个方法声明。可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,与前两个注释有所不同,你需要添加一个参数才能正确使用,这些参数都是已经定义好了的,我们选择性的使用就好了。
2025-02-21 02:02:29
633
原创 javaSE学习笔记-练习代码
代码的主要目的是计算数列的总和,并将结果输出到控制台。这个数列的特点是每一项都是由前一项乘以 10 再加上 9 得到的。:定义了一个公共类Main,Java 程序的入口点通常包含在一个名为main的类中。:定义了程序的入口方法main,所有 Java 应用程序都从main方法开始执行。:定义了一个公共类,在 Java 中,每个程序都需要至少一个类,并且类名要与文件名(不包括.java扩展名)一致。:这是 Java 程序的入口点,所有 Java 应用程序都从main方法开始执行。public。
2025-02-20 01:09:22
824
原创 javaSE学习笔记23-线程(thread)-总结
这段代码展示了 Java 中创建线程的三种主要方式:每种方式都有其适用的场景和优缺点,可以根据具体需求选择合适的方式。创建。
2025-02-20 00:11:42
1051
原创 javaSE学习笔记22-线程(thread)-线程通信、线程池
应用场景:生产者和消费者问题假设仓库中只能存放一件产品,生产者将生产出来的产品放入仓库,消费者将仓库中产品取走消费如果仓库中没有产品,则生产者将产品放入仓库,否则停止生产并等待,直到仓库中的产品被消费者取走为止如果仓库中放有产品,则消费者可以将产品取走消费,否则停止消费并等待,直到仓库中再次放入产品为止线程通信-分析这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件。
2025-02-19 17:27:03
1103
原创 javaSE学习笔记21-线程(thread)-锁(synchronized 与Lock)
多个线程各自占有一些共享资源,并且互相等待其他线程占有的资源才能运行,而导致两个或者多个线程 都在等待对方释放资源,都停止执行的情形,某一个同步块同时拥有“两个以上对象的锁”时,就可能 会发生“死锁"的问题;死锁是指多个线程在执行过程中,因为争夺资源而造成的一种互相等待的现象,导致这些线程都无法继续执行下去。
2025-02-19 13:06:05
642
原创 javaSE学习笔记20-线程(thread)的状态以及控制
线程对象被创建,但尚未调用start()方法。控制方式:通过创建Thread对象或其子类对象。线程已经调用了start()方法,等待CPU调度执行。控制方式:调用start()方法。线程获得CPU资源,正在执行run()方法中的代码。控制方式:由JVM的线程调度器决定。线程因为某些原因(如等待锁、I/O操作等)暂时停止执行。控制方式:通过关键字、wait()方法、I/O操作等。线程无限期等待其他线程执行特定操作(如notify()或控制方式:调用wait()方法。
2025-02-16 23:58:27
646
原创 javaSE学习笔记19-Lambda表达式
Lambda表达式是Java 8引入的一个重要特性,它使得代码更加简洁和易读,特别是在处理函数式编程和集合操作时。通过Lambda表达式,可以更轻松地实现函数式接口,并且可以更自然地表达函数式编程的思想。
2025-02-15 14:56:32
809
原创 javaSE学习笔记01-基本概念
Java 通过 JVM(Java 虚拟机)实现“一次编写,到处运行”,能够在不同操作系统上运行。:Java 标准库(Java Standard Library)提供了大量工具类和接口,简化开发。:被称为 Java 2,引入集合框架、JIT 编译器、Swing 等。:JVM 负责内存分配和垃圾回收,管理堆、栈、方法区等内存区域。:Java 提供垃圾回收机制,自动管理内存,减少内存泄漏风险。:Java 开发工具包,包含编译器、调试器等开发工具。:Java 支持封装、继承、多态等面向对象编程特性。
2025-02-14 01:54:08
353
原创 javaSE学习笔记08-随机数(Random)
类是线程安全的,但多线程环境下可能会影响性能。如果需要高性能的多线程随机数生成,可以使用。类是 Java 中用于生成伪随机数的工具,支持生成整数、浮点数、布尔值等多种类型的随机数。如果使用相同的种子,生成的随机数序列将是相同的。类生成的是伪随机数,即通过算法生成的随机数序列。如果需要更高的随机性,可以使用。它可以生成各种类型的随机数,例如整数、浮点数、布尔值等。类提供了多种方法来满足不同的随机数生成需求。可以通过设置随机种子来生成可重复的随机数序列。是一个用于生成伪随机数的类,位于。类,首先需要创建一个。
2025-02-13 17:40:19
589
原创 javaSE学习笔记17-线程(thread)的实现
在 Java 中,是程序执行的最小单元,是进程中的一个独立执行路径。一个进程可以包含多个线程,这些线程共享进程的资源(如内存、文件句柄等),但每个线程有自己的程序计数器、栈和局部变量。线程使得程序能够并发执行多个任务,从而提高程序的效率和响应性。进程:一个进程里包含多个线程,程序运行起来就叫进程线程:线程是程序中执行的线程。
2025-02-13 13:12:02
864
原创 javaSE学习笔记-简单学生管理系统的实现
用java实现了一个简单的学生管理系统,主要功能包括添加学生、删除学生、修改学生信息、查看所有学生信息以及退出系统。
2025-02-13 01:07:20
956
原创 javaSE学习笔记16-面向对象编程-多态
最后在测试类调用useAnimal的a.eat()就输出了Cat类和Dog类中继承于Animal,重写了的eat()方法里的内容。定义动物操作类AnimalOperator,用来实现动物相同类型特征方法的调用,这里是调用了Cat类和Dog类的eat方法。* eat()方法在Cat类和Dog类中都有,Cat和Dog类继承Animal父类,重写了eat()方法。编译看左边,Animal类中有eat()方法,执行看右边,Cat类里和Dog类也有eat()方法。1.static 方法,属于类,它不属于实例。
2025-02-12 23:49:45
384
原创 javaSE学习笔记15-抽象类、Object类、接口、内部类
3.接口中的方法都是抽象的public abstract(编写时一般省略public abstract,系统自动识别,写出来也是灰色的)接口 关键字interface,接口只定义一些方法,接口都需要实现类来实现定义的这些抽象方法。约束和实现分离:---面向接口编程。6.接口可以被多实现,实现接口的关键字,implements。Test类,类中包含匿名内部类Apple,接口UserService。声明类的关键字是class,声明接口的关键字是interface。7.实现接口的类,必须要重写接口中的方法。
2025-02-12 23:21:58
248
原创 javaSE学习笔记14-面向对象编程-继承(extend)
4.抛出的异常,范围,可以缩小,但不能扩大: ClassNotFoundException-->Exception(大)在Java中,所有类都默认直接或间接继承Object类,Object是所有类的父类。重写:子类的方法和父类必要一致(方法名,方法修饰,结构):方法体不同。1.super调用父类的构造方法,必须在构造方法的第一个。继承的本质是对某一类的抽象,从而实现对现实世界更好的建模。1.extends的意思是扩展,子类是父类的扩展。this:没有继承也可以用。父类的引用指向了子类,子类重写父类的方法。
2025-02-12 22:25:54
257
原创 javaSE学习笔记13-面向对象编程-封装
Alt + insert--》选择get/set,快捷生成get、set方法。设计程序要追求“高内聚,低耦合”1.提高程序的安全性,保护数据。属性私有,get/set。2.隐藏代码的实现细节。4.系统的可维护性增加。get、set方法,
2025-02-12 22:13:41
129
原创 javaSE学习笔记12-面向对象编程(oop)
在pet类中定义名字和年龄变量,在application中给具体的名字和年龄,调用pet中的方法。2.使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。1.定义有参构造之后,如果想使用无参构造,显示得定义一个无参的构造。面向对象编程的本质就是:**以类的方式组织代码,以对象的组织(封装)数据。//1.使用new关键字,必须要有构造器,本质是在调用构造器。实例化初始值、有参构造、无参构造、构造器。(2)必须没有返回类型,也不能写void。
2025-02-12 22:02:30
199
原创 javaSE学习笔记11-异常(exception)
3.如果在当前异常的方法中处理异常,可以使用try-catch语句捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。Error通常是灾难性的致命的错误,是程序无法控制和处理的,需要程序员处理(必须处理),当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程。2.运行时异常:运行时异常时可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时被忽略。例如要打开一个不存在的文件时,一个异常就发生了,这些异常在编译时不能忽略,要进行处理。
2025-02-12 21:39:50
318
原创 javaSE学习笔记10-方法(method)
参数类型、参数像是一个占位符,当方法被调用时,传递值给参数,这个值被称为实参或变量,参数列表是指方法的参数类型、顺序和参数的个数,参数是可选的,设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合,我们设计方法时候,最好保持方法的原子性。法2、通过写4个方法,switch选择运算方式(加、减、乘、除),调用方法输出运算后的结果。方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,来选择对应的方法,重载就是在一个类中,具有相同的函数(方法)名称,但形参不同的函数(方法)
2025-02-12 21:29:14
296
原创 javaSE学习笔记09-数组(array)
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。(1)多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。数组本身就是对象,Java中对象是在堆内存中的,因此数组无论保持原始类型还是其他对象类型。(4)数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。(1)数组的长度是确定的,数组一旦被创建,它的大小就是不可以改变的。
2025-02-12 21:08:19
479
原创 javaSE学习笔记07-结构(struct):顺序结构、选择结构、循环结构、continue和break
/while循环条件语句不满足时,一次循环也不会执行,布尔表达式为true时,程序一直执行,不加终止循环的条件,就陷入了死循环。声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。接着进行下一次是否执行循环的判定,执行continue下面的语句(即跳出当前循环不执行,继续执行下面的)然后,检测布尔表达式,如果为true,循环体执行,如果为false,循环终止,开始执行循环体后面的语句。语句//值变量不匹配表达式1-表达式3时,写输出其他的。
2025-02-12 17:33:29
649
原创 javaSE学习笔记06-Scanner的使用
Scanner进阶:键盘输入两个日期,日期格式为 yyyy-MM-dd ,计算这两个日期间隔多少天,间隔多少周,间隔多少年,日期输入的格式不对时,给出提示。Scanner进阶:键盘输入一个日期,日期格式为 yyyy-MM-dd,判断是闰年还是平年,这个月是几月,有几天,输入的这个日期是星期几。Scanner进阶:输入多个数字,求和,求平均值,求输入了多少个数据,通过while循环判断是否还有输入,并求和统计输入的个数。3.日期格式类型是 SimpleDateFormat,创建对象,日期输入的格式是什么。
2025-02-12 16:48:16
468
原创 javaSE学习笔记05-运算符详解
2、加法运算,输出类型为long(长整型)和int(整型)1、二元运算符:加(+)、减(-)、乘(*)、除(/)4、逻辑运算符:与(and)、或(or)、非(取反)3、关系运算符:true、false。7、三元运算符:x?6、连接符,字符串连接符。关系运算符:自增、自减。
2025-02-12 16:16:49
308
原创 javaSE学习笔记04-修饰符、运算符、JavaDoc文档
5.Other command line arguments,输入-encoding UTF-8 -charset UTF-8。进入存放java.class的文件夹,右键单击-->OpenIn-->Explorer。逻辑运算符:&&(与,和的意思,例如:我和你...),||(或,且的意思)、!关系运算符:>,<,>=,<=,==,!算术运算符:+、—、*、/、%(取余)、++、--;位运算符:&,|,^,~,>>,<<,>>>(了解)扩展赋值运算符:+=,-=,*=,/=6.最后点击确定就行。
2025-02-12 15:55:50
457
原创 javaSE学习笔记03-变量、常量
2.类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写lastName。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。注:(1)每个变量都有类型,类型可以是基本类型,也可以是引用类型。6.方法名:首字母小写和驼峰原则:run(),runRun()简单一句话:除了类名和常量,其他首字母都小写,常量都大写。5.类名:首字母大写和驼峰原则:Man,GoodMan。1.所有变量:方法、类名:见名知意。变量是什么:变量就是可以变化的量。
2025-02-12 15:42:21
276
原创 javaSE学习笔记02-注释、关键字、标识符、数据类型、类型转换
1、用java编写第一个程序代码,输出“Hello,World!”,java里注释分为哪几种;3、整数拓展(进制)、浮点数拓展、字符拓展、转义字符、布尔值拓展等;2、Java数据类型有些,两大类:基本数据类型8种,引用类型3种;4、类型转换(强制转换、自动转换)
2025-02-12 15:08:29
234
原创 java-gui编程-中国象棋游戏
将棋子从起始位置移动到目标位置的过程拆分成多个小步骤,在每个步骤中更新棋子的位置并重新绘制界面,从而实现平滑的动画过渡。类中包含了较多的游戏逻辑,可进一步分离职责,提高代码的可维护性。例如,可以将一些与界面绘制无关的逻辑,如游戏初始化参数的处理、下棋历史记录的管理等,从。整个代码采用了 MVC(Model-View-Controller)架构的思想,将不同的功能模块分离,提高了代码的可维护性和可扩展性。通过上述代码,在界面上添加了难度选择的下拉框,用户可以选择不同的难度级别。:负责游戏界面的展示,主要由。
2025-02-03 03:10:11
1564
原创 java-gui编程-五子棋小游戏
java-gui编程-五子棋小游戏文件目录如下:棋盘背景图如下:运行效果如下:FiveChess类代码://主类,运行该类即可启动游戏FiveChessFrame类代码:// 常量定义// 成员变量private String message = "黑方先行";private String blackMessage = "无限制";private String whiteMessage = "无限制";
2025-02-02 22:08:49
1071
1
华为仿真软件eNSP及相关软件安装包,学习计算机网络,华为认证必要软件
2025-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅