后端
文章平均质量分 94
后端
随记123
一起学习叭
展开
-
09-java多线程:生命周期、释放锁操作与死锁
TIMED_WAITING:当前线程执行过程中遇到Thread类的sleep或join,Object类的wait,LockSupport类的park方法,并且在调用这些方法时,设置了时间,那么当前线程会进入TIMED_WAITING,直到时间到,或被中断。只能我们人为的进行想象和理解。WAITING:当前线程执行过程中遇到遇到Object类的wait,Thread类的join,LockSupport类的park方法,并且在调用这些方法时,没有指定时间,那么当前线程会进入WAITING状态,直到被唤醒。原创 2024-05-09 08:30:00 · 705 阅读 · 0 评论 -
09-java多线程:等待唤醒机制
等待唤醒机制这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争(race),比如去争夺锁,但这并不是故事的全部,线程间也会有协作机制。就是在一个线程满足某个条件时,就进入等待状态(wait()/wait(time)), 等待其他线程执行完他们的指定代码过后再将其唤醒(notify());或可以指定wait的时间,等时间到了自动唤醒;在有多个线程进行等待时,如果需要,可以使用 notifyAll()来唤醒所有的等待线程。wait/notify 就是线程间的一种协作机制。原创 2024-05-08 08:30:00 · 1045 阅读 · 0 评论 -
09-java多线程
我们在之前,学习的程序在没有跳转语句的前提下,都是由上至下依次执行,那现在想要设计一个程序,边打游戏边听歌,怎么设计?要解决上述问题,咱们得使用多进程或者多线程来解决.原创 2024-05-06 20:33:40 · 1238 阅读 · 0 评论 -
08-Java异常
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式问题,读取文件是否存在,网络是否始终保持通畅等等。异常:指的是程序在执行过程中,出现的非正常的情况,如果不处理最终会导致JVM的非正常停止。异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.异常也不是指逻辑代码错误而没有得到想要的结果,例如:求a与b的和,你写成了a-b。原创 2024-04-29 09:23:17 · 973 阅读 · 0 评论 -
07-java面向对象:内部类与注解
1、什么是内部类?将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。2、为什么要声明内部类呢?总的来说,遵循高内聚低耦合的面向对象开发总原则。便于代码维护和扩展。具体来说,当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,不在其他地方单独使用,那么整个内部的完整结构最好使用内部类。而且内部类因为在外部类的里面,因此可以直接访问外部类的私有成员。3、内部类都有哪些形式?原创 2024-04-28 10:11:35 · 927 阅读 · 0 评论 -
07-java面向对象:接口
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则必须能...”的思想。继承是一个"是不是"的is-a关系,而接口实现则是 "能不能"的has-a关系。例如:你能不能用USB进行连接,或是否具备USB通信功能,就看你是否遵循USB接口规范例如:Java程序是否能够连接使用某种数据库产品,那么要看该数据库产品有没有实现Java设计的JDBC规范//只能连接鼠标//只能连接键盘//Usb3如果是类的话,有单继承限制//Usb3如果是接口的话,就不会有单继承限制。原创 2024-04-28 01:16:06 · 1202 阅读 · 0 评论 -
07-java面向对象:枚举、包装类、抽象类
枚举类型本质上也是一种类,只不过是这个类的对象是固定的几个,而不能随意让用户创建。在JDK1.5之前,需要程序员自己通过特殊的方式来定义枚举类型。在JDK1.5之后,Java支持enum关键字来快速的定义枚举类型。枚举在应用的时候直接获取创建好的对象即可,不需要在new了。原创 2024-04-23 08:30:00 · 773 阅读 · 0 评论 -
07-java面向对象:静态
/静态变量total值是2。如果权限修饰符允许,在其他类中可以通过“类名.静态变量”直接访问,也可以通过“对象.静态变量”的方式访问(但是更推荐使用类名.静态变量的方式)。静态的方法和静态的代码块中,==不允许==出现this和super关键字,如果有重名问题,使用“类名.”进行区别。静态变量的get/set方法也静态的,当局部变量与静态变量重名时,使用“类名.静态变量”进行区分。原创 2024-04-22 19:03:47 · 674 阅读 · 0 评论 -
06-java面向对象:关键字和API
类 `java.lang.Object`是类层次结构的根类,即所有类的父类。每个类都使用 `Object` 作为超类。* Object类型的变量与除Object以外的任意引用数据类型的对象都多态引用* 所有对象(包括数组)都实现这个类的方法。* 如果一个类没有特别指定父类,那么默认则继承自Object类。 * Object:主要学习 * (1)toString() * (2)getClass() * (3)equals() * (4)hashCode() * (5)finalize()原创 2024-04-20 09:27:29 · 810 阅读 · 0 评论 -
06-java面向对象:多态、实例初始化
多态是继封装、继承之后,面向对象的第三大特性。它表示一个对象具有多重特征,可以在特定的情况下表现出不同的状构造器的作用:new对象,并在new对象的时候为实例变量赋值。- 静态代码块是在类被加载到JVM时执行的。它只执行一次,无论创建多少个类的实例。静态代码块通常用于初始化静态变量或执行只需要执行一次的类级别的初始化任务。- 非静态代码块是在创建类的实例时执行的。每次创建新的对象时,都会执行非静态代码块。原创 2024-04-18 20:37:41 · 1496 阅读 · 0 评论 -
06-java面向对象:封装与继承
适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。通俗的讲,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。高内聚:相关的功能和数据尽可能地组织在同一个类中,各个类内部数据操作细节自己完成,以确保其独立性。低耦合:各个类之间的依赖关系应尽可能低。也就是说,一个类的变化应尽量减少对其他类的影响。有助于提高软件的可扩展性、可复用性和灵活性。继承有延续(下一代延续上一代的基因、财富)、扩展(下一代和上一代又有所不同)的意思。原创 2024-04-15 19:26:16 · 1155 阅读 · 0 评论 -
05-java面向对象(上)
类是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。属性:就是该事物的状态信息。行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。例如:做一个养宠物的小游戏类:人、猫、狗等//种类//昵称int energy;//能量//吃东西Dog dog;//喂宠物dog.eat();p.name = "张三";原创 2024-04-11 14:29:47 · 1163 阅读 · 0 评论 -
04-java数组
衣柜(装衣服等物品),教室(装学生等人员)。是将多个数据存储到一起,每个数据称为该容器的元素。内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理。原创 2024-04-09 19:05:42 · 1126 阅读 · 0 评论 -
03-java流程控制语句
表达式分3种: 1.计算表达式 2.new 表达式(结果是一个数组或类的对象) 3.方法调用表达式(结果是方法返回值或void)表达式:变量或常量 + 运算符构成的计算表达式。原创 2024-04-08 08:30:00 · 1075 阅读 · 0 评论 -
02-java类型转换和运算符
整形byte 1字节 8位 short 2字节 16位 int 4字节 32位 long 8字节 64位原创 2024-04-02 17:10:12 · 525 阅读 · 0 评论 -
01- Java概述
人们使用编程语言对计算机下达的命令 (计算机能看懂的语言)原创 2024-04-01 18:43:42 · 237 阅读 · 0 评论 -
05-面向对象(上)
类是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。属性:就是该事物的状态信息。行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。例如:做一个养宠物的小游戏类:人、猫、狗等//种类//昵称int energy;//能量//吃东西Dog dog;//喂宠物dog.eat();p.name = "张三";原创 2024-03-20 09:34:16 · 1101 阅读 · 0 评论 -
04-数组
需求分析:现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有50名员工,用前面所学的知识,程序首先需要声明50个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦,而且错误率也会很高。因此我们可以使用容器进行操作。将所有的数据全部存储到一个容器中,统一操作。水杯(装水等液体),衣柜(装衣服等物品),教室(装学生等人员)。是将多个数据存储到一起,每个数据称为该容器的元素。内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。原创 2024-03-20 08:52:45 · 1015 阅读 · 0 评论 -
03-流程控制语句结构
循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要通过修改循环变量使得循环判断条件为false,从而结束循环,否则循环将一直执行下去,形成死循环。执行的特点: (1)如果是嵌套在if语句块中的 只有当外部的if条件满足,才会去判断内部的条件 (2)如果是嵌套在else语句块中的 只有当外部的if条件不满足,进入else后,才会去判断内部的条件。(2)while(循环条件),如果循环条件中的循环变量值不修改,那么循环条件就会永远成立。原创 2024-03-18 11:06:15 · 1037 阅读 · 0 评论 -
02-Java变量和运算符
(1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换,提示:有风险,可能会损失精度或溢出。//(1)先取a的值“1”放操作数栈(2)a再自增,a=2(3)再把操作数栈中的"1"赋值给a,a=1。//()中的数据类型必须商是-2,余数是-1 (-2)*2+(-1) = -4-1=-5。//5%-2 ==>商是-2,余数是1 (-2)*(-2)+1 = 5。// 输出结果是5,z的值是6。原创 2024-03-16 09:24:11 · 1005 阅读 · 0 评论 -
01- Java概述
Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。Java之父是詹姆斯.高斯林(James Gosling)。1996年发布JDK1.0版。大约26年。目前最新的版本是Java21。原创 2024-03-15 20:00:09 · 935 阅读 · 0 评论