- 博客(31)
- 收藏
- 关注
原创 Java--多线程(下)
当第一个线程拥有A对象锁标记,并等待B对象锁标记,同时第二个线程拥有B对象锁标记,并等待A对象锁标记时,产生死锁。一个线程可以同时拥有多个对象的锁标记,当线程阻塞时,不会释放已经拥有的钡怀记,由此可能造成死锁。若干个生产者在生产产品,这些产品将提供给若干个消费者去消费为了使生产者和消费者能并发执行,在两者之间设置一个能存储多个产品的缓冲区生产者将生产的产品放入缓冲区中,消费者从缓冲区中取走产品进行消费显然生产者和消费者之间必须保持同步即不允许消费者到一个空的缓冲区中取产品。
2024-08-21 16:51:03
842
原创 Java--多线程(上)
synchronized修饰的代码块称为同步代码块。在给定时间点上,一个线程只能处于一种状态。1、创建类实现Runnable接口。3、创建Runnable实现类对象。4、调用start方法启动线程。3、创建Thread子类对象。一个进程能同时执行多个任务。每一个任务可以看做一个线程。1、创建类继承Thread。4、创建Thread对象。一个正在运行的应用程序。能确保原子操作不被破坏。
2024-08-17 11:24:42
644
原创 Java--IO--字符流
字节流能读写任意类型的文件一个字符可能是一个或者多个字节组成a一个字节床2个字节嬴3个字节使用字节流每次读取一个字节可能会造成读取半个文字需要一种能按照个数读取数据的流–字符流解决乱码问题/*** 解决乱码* --UTF-8的格式读取内容* --GBK的格式写入内容*/// 创建转换流对象。
2024-08-15 17:56:43
308
原创 Java--IO字节流
文件和目录路径名的抽象表示形式。把文件管理系统中的字符串路径创建成为Java中的对象具备了一些属性和方法,方便在程序中操作文件筛选符合要求的文件或者文件夹以字节为单位读取数据的流以字节为单位输出【写入】数据的流减少IO的次数,提高IO性能在字节流基础上进行包装。
2024-07-31 15:43:48
401
原创 Java--异常
程序运行过程中出现了不正常【报错】的情况官方的异常有时候无法准确表示我们项目中的异常【见名知意】开发者可以模仿JDK中的异常来自定义异常。
2024-07-27 10:41:48
282
原创 Java--二维数组、单例模式、工厂模式
存储数组的数组【数组嵌套】数组中的元素还是数组单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。确保只有单个对象被创建。1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
2024-07-25 11:29:06
379
原创 Java--集合
参数化数据类型在创建对象的时候指定类中属性的数据类型动态设置,扩展性增强放入数据的时候就检查数据的类型int age;T stuId;G gender;无序Set不保证其元素的顺序,具体的顺序取决于其具体实现类。唯一性Set保证集合中的元素不重复。如果试图将重复的元素添加到集合中,添加操作将不会影响集合。基本操作Set接口继承了Collection接口中的基本操作,如addremovecontainssizeclearisEmpty等。此类实现Set接口,由哈希表(实际上是一个。
2024-07-24 15:23:39
999
原创 Java--Collection集合
Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素【集合中只能存储引用类型】。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何 直接实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。有序地Collection。
2024-07-20 15:21:16
695
原创 Java--常用类
每一种基本类型都有其对应的引用类型这些引用类型中有属性和方法,更方便我们操作数据这些引用类型称为包装类System类包含一些有用的类字段和方法。它不能被实例化。在System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。
2024-06-28 16:11:12
424
1
原创 Java--常用类
Java-常用类:1.StringBuffer,2.StringBuilder,3.包装类,4.System,5.Math,6.Random,7.BigDecimal,8.Date,9.Calendar,10.SimpleDateFormat
2024-06-28 16:03:54
768
原创 Java-内部类和常用类
定义在类的内部的完整的类称为内部类能容纳更多的数据分类:局部内部类成员内部类静态内部类匿名内部类类Object是类层次结构的根类。所有对象(包括数组)都实现这个类的方法。String类代表字符串。就是一串字符。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。字符串是常量;它们的值在创建之后不能更改。扩容原理。
2024-06-15 11:16:43
682
2
原创 Java--final--接口
final意为最终的不可修改的可以修饰类、方法、变量使用interface修饰的内容成为接口接口表示一种规范、能力、约定接口没有具体实现,需要实现类来执行具体的操作。
2024-06-07 10:26:36
491
原创 Java正则表达式判断是否金额
/ (\.\d+)?表示小数点和至少一位数字可以有0次或1次出现(小数点前后的数字)// ^表示字符串的开始,$表示字符串的结束,中间的+表示匹配前面的字符或组一次或多次。// \D* 表示非数字字符可以出现0次或多次(小数点前后都可能有空白字符)// 正则表达式规则,匹配整数和小数。// \d+ 表示至少有一位数字。
2024-06-06 08:50:34
469
原创 Java多态-抽象-静态-最终
使用abstract修饰的内容成为抽象抽象类抽象方法被static修饰的内容成为静态的内容static修饰的变量成为静态属性,也称为类属性static修饰的方法成为静态方法,也称为类方法静态的数据随着类的加载而加载,无需等待对象创建即可使用【使用类名直接调用】代码块就是使用{}包裹的一块代码没有名字,自动执行根据位置和修饰符可以分为:局部代码块动态代码块【构造代码块、成员代码块】静态代码块同步代码块【多线程部分讲解】
2024-06-05 10:20:19
965
原创 Java三大特性
String[] brands = {"苹果","三星","华为","中兴","联想","摩托罗拉"};System.out.println("司机的工作是" + info);System.out.println("厨师的工作是切墩和颠勺");System.out.println("司机的工作是开车");System.out.println("工人需要吃饭");System.out.println("工人需要工作");System.out.println("工人需要工作");
2024-06-05 09:41:21
704
原创 Java面向对象
类名类的名称属性对象具备的特征品种、姓名、年龄、地址...方法对象具备的行为吃饭、睡觉、学习、工作...构造器对象创建过程中完成属性的初始化类是抽象的类中总结了对象应该具有的属性和行为这些属性和行为没有具体的数据属性只有声明,没有赋值【虽然有默认值】方法没有被调用,方法的形参也没有赋值如果需要使用属性和方法,需要创建此类的对象没有对象--》new一个构造器也称为构造方法是类中一个特殊的方法方法名和类名完全相同没有返回值,也没有返回值类型。
2024-06-04 19:22:17
917
原创 Java--数组
String[] names = new String[] {"司马一","司马二","司马三","司马四","司马五","司马六","司马七","司马八"};String[] nameWei = new String[] {"曹操","典韦","许褚","张辽","夏侯惇"};String[] nameWei = new String[] {"曹操","典韦","许褚","张辽","夏侯惇"};// 每一轮中相邻的两个元素比较,比较的次数是长度-1-i,需要比较的元素随着轮数的增加逐渐减少。
2024-05-17 16:34:58
594
原创 Java-函数【方法】
函数是完成指定功能的一个代码块,可以通过函数的名字重复使用参与函数运行的数据称为参数分为:形式参数形参实际参数实参有些函数运行之后会产生一个结果查询得到的名字、年龄、信息计算得到的周长、面积、位置... ...这些结果在后期还需要再次使用,需要把这个结果记录下来,后续使用可以在方法的声明添加返回值类型可以在方法体中添加返回值return datapublic static 返回值类型 方法名(参数列表){方法体return 数据;
2024-05-10 16:58:52
648
原创 for循环
可以使用java中的一些关键字影响循环执行的流程break终止循环或者switch结构continue跳过本轮循环后面的内容,直接进入新的一轮循环循环中的内容是其他的完整的循环参见if嵌套。
2024-05-09 17:37:22
477
1
原创 do-while循环
/ 如果成绩小于60分,视为不及格,继续输入成绩。System.out.println("请输入你的考试成绩:");do-while循环第一次执行的时候会直接执行循环体,不用像while循环先执行判定。* 模拟考试输入成绩,如果成绩达标,结束循环,否则继续考试。// 提示输入并获取考试成绩。do-while执行的次数是1~N次。} while(循环条件);适用于至少执行一次的循环场景。
2024-05-09 17:31:31
300
2
原创 while循环
System.out.println("鸡的数量:" + j + ",兔子数量:" + t);* 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。System.out.println("水仙花数字:" + num);* 4、计算1 + 1/2 + 1/3 + ... + 1/100的结果【挑战】* 5、计算1 - 1/2 + 1/3 - ... - 1/100的结果【挑战】// 4、计算1 + 1/2 + 1/3 + ... + 1/100的结果。
2024-05-09 17:26:52
340
1
原创 Java-switch分支语句
代码块00// key的类型可以是byte、short、int、char、String、枚举代码块01;break;代码块02;break;代码块03;break;... ...default:代码块Nbreak;代码块N+1执行流程:1、执行代码块002、执行switch中key数值的判定如果key==value01,执行代码块01,执行break,switch结束如果key!
2024-04-26 15:38:56
418
1
原创 Java选择结构-if else
代码块01if (条件){代码块02代码块03执行流程:1、执行代码块012、执行条件判断如果条件是true,执行代码块02如果条件是false,条件if3、执行代码块03。
2024-04-26 14:42:49
298
3
原创 Java键盘录入Scanner
在程序运行期间,可能需要用户输入一些数据才可以继续运行账户、密码、各种选项、使用JDK中自带的Scanner这个类能实现这样的功能。
2024-04-25 16:42:33
681
1
原创 Java基础语法
在Java中,被赋予了特殊含义的标识符已经被Java语言占用,开发者不能再次使用变量是在内存中开辟的一片空间,用来存储对应类型的数据根据数据的种类和大小,把数据进行分类的操作Java是强类型编程语言,每一条数据都有其对应的类型进制也就是进位计数制,是人为定义的带进位的计数方法。135 为什么是一百三十五?在数据处理过程中参与运算的符号+ - * / =算术运算符关系运算符赋值运算符逻辑运算符三元运算符位运算符。
2024-04-25 14:50:46
1360
1
原创 Java注意事项
如果在文件中定义了多个类,最多有一个类使用public修饰。- 多个class编译之后生成对应数量和名字的字节码文件。- 如果一个类使用public修饰,类名和文件名必须一致。- 一个java文件中可以定义多个类。- main方法只能存在一个。- 多个类名字不能相同。- 一个类中能存在多个方法。- 一行只写一句代码。- 代码格式要良好。- 只注释一行代码。- 能注释多行代码。- 能注释多行代码。- 能生成文档提示。- 标注解释代码。
2024-04-25 10:19:15
144
2
原创 我的第一个Java程序(“Hello World!”)
EditPlus、Notepad++ 记事本类的工具,手写代码,熟悉代码编写、编译、运行的每一个步骤(推荐新手使用)每次修改了java文件中的内容,都要重新生成.class文件才能看到最新的效果。编译之后会产生一个和类名相同的字节码文件[.class文件]只要你的电脑安装了对应版本的JDK,就能运行Java程序。java中的关键字,访问权限修饰符,表示公开的;java中的关键字,访问权限修饰符,表示公开的;需要把书写的代码转换成为计算机能够识别的内容。我们书写的代码计算机底层是无法直接识别的。
2024-04-24 19:31:19
325
原创 Java环境搭建
新建(变量名:%JAVA_HOME%,变量值:JDK安装路径-例如D:\JavaTool\Java\jdk1.8.0_201) ->商业转载请联系作者获得授权,非商业转载请注明。新建(%JAVA_HOME%\bin)并点击上移到最上方 ->可以在任意目录中访问java和javac命令。如果下载的是zip直接解压到指定目录。选择对应的版本和操作系统进行下载。选择安装位置【新手建议默认位置】找到并点击编辑Path变量 ->右键点击我的电脑 ->所有窗口依次点确定即可。配置到系统的环境变量。
2024-04-24 18:58:56
186
原创 Java入门
发明人詹姆斯 * 高斯林发明时间1995年发明1996年第一版JDK1.02004年JDK8.0【使用最多】2019年Java 132020年Java 14版本JavaSE(Standard Edition)Java标准版包括标准的Java虚拟机(JVM)和标准库。Java SE是开发普通桌面和商务应用程序的基础,也是学习Java编程的起点。它可以用于构建桌面应用程序或简单的服务器应用程序。JavaEE(Enterprise Edition)Java企业版。
2024-04-24 18:35:14
344
原创 计算机的诞生与发展
此外,计算机的发明也是20世纪科学技术领域的一大突破,它不仅在军事科研领域发挥了重要作用,而且随着时间的推移,计算机的应用领域逐渐扩展到社会的各个领域,包括工业生产、商业管理、科学研究、教育卫生等,形成了规模巨大的计算机产业,并带动了全球范围内的技术进步。计算机的发展历史悠久且复杂,从原始社会的简单计数工具到春秋时期的算筹计数法,再到后来的算盘等,都是人类为了适应日益复杂的计算需求而创造的辅助工具。在近代,随着科技的进步,计算机经历了从机械到电子的跨越,最终发展成今天所见的高性能电子设备。
2024-04-20 11:27:04
2322
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人