自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 死锁、线程通讯、单例模式

死锁:死锁就是在程序执行过程中,都遇到了对方进入加锁的方法中,导致大家都访问不了1.某个线程执行完成,需要 先后 嵌套 锁定 执行两个对象,同时在这个过程中,先锁定第一个对象,在锁定第二个对象2.另外一个线程执行完成之后,需要 先后 嵌套 锁定 执行两个对象,同时在这个过程中,先锁定第二个对象,在锁定第一个对象3.在第一个线程,锁定第一个对象后,要去锁定第二个对象时,发现第二个对象已经被锁定,只能等待4.第二个线程,锁定第二个对象后要去锁定第一个对象时,发现第一个对象已经被锁定,只能等待。

2023-10-26 20:28:54 32 1

原创 多线程

线程的优先级等级:涉及的方法:getPriority():返回线程优先值setPriority(int newPriority):改变线程的优先级说明:线程创建时继承父级的优先级低优先级只是获得调度的概率低,并非一定是在高优先级线程之后才被调用问题的提出:多个线程执行的不确定性引起执行结果的不稳定多个线程对账本的共享,会造成操作的不完整性,会破坏数据线程同步:当多个线程有可能同时操作同一个数据的时候,为了保证数据一致性,需要进行同步吧执行本质时同步数据,是一种安全机制。

2023-10-25 21:17:47 63 1

原创 File

public File(String pathname)以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。file = new File("D:" + File.separator + "20期" + File.separator + "课件");

2023-10-23 19:59:54 33

原创 集合(3)

当我们使用HashSet的时候,其实就等于是在使用HashMap添加数据的时候,虽然调用的是HashSet的add方法,但是本质还是调用map的put方法PS:在map中,put是添加操作而map中,需要保存的是k和v映射关系,所以在set中有一个变量保存了value的值,所以我们在进行set添加的时候只操作了map中的key,value值我们不再关心散列表:用于存储键值对映射关系(K--V),存储方式为数组中保存链表,用于解决哈希冲突问题Java中散列表对应的就是HashSet。

2023-10-20 15:59:24 32 1

原创 集合(2)

Comparable:如果treeSet中保存我们自己定义类型的时候,使用ComparableComparator:如果treeSet中保存的不是我们写的类型的时候,就要使用Comparator来指定排序规则比如Integer默认是升序排序,假如我们需要降序排序,我们只能使用Comparator,因为我们不可能去更改Integer的源码但此时Integer中是有Comparable接口的实现的,等于两个比较都存在,但是Comparator优先级高所以会按照我们定义的规则进行排序。

2023-10-20 15:58:17 31 1

原创 集合

Java集合是使程序能够存储和操纵元素不固定的一组数据。所以Java集合类都位于Java.util包中。【问】:之前我们需要把多个元素放到一起的时候,使用的是数组。那么为何还要提供Java集合工具类呢?我们通过对比数组和Java集合工具类来解释Java集合工具类的必要性。数组集合长度固定长度不固定存放任意类型不能存放基本数据类型,只能存放对象的引用如果集合中存放基本类型,一定要将其 “装箱”成对应的”基本类型包装。

2023-10-20 15:57:14 32 1

原创 面向对象

abstract 是修饰符,表示抽象的,用来修饰抽象类和抽象方法abstract修饰的类是抽象类,并且抽象类不能创建对象,而且抽象类一般主要是用于被继承抽象类有构造方法子类如果继承了抽象类,那么需要实现所有的抽象方法,否则这个子类就需要使用abstract修饰普通类继承抽象类需要实现所有抽象方法抽象类继承抽象类,需要实现0~N个抽象方法abstract修饰的方法是抽象方法,并且该方法没有方法体,就可以看做是没有方法体的成员方法,只定义功能,不定义实现,用于让不同的子类去实现(覆写)

2023-10-10 21:10:11 577 1

原创 面向对象

向下转型:由子类到父类,类似于强制类型转换,但是必须先发生向上转型之后才能发生向下转型。可以写,可以不写,只是一种提醒机制,防止我们写错代码,导致该方法没有产生覆写。多态polymorphic:多种形态,相同功能,不同的对象有不同的状态。2.成员方法:如果子类腹泻了父类的成员方法,则调用子类的陈宝国原方法。@override:注解,是源码注解,编译后就没了,就被删除了。没有默认值,必须是显式赋值。1.子类特有的,调用不了,因为多态的缺点就是丢失子类特有的属性。final是修饰符,表示最终的,不可修改的。

2023-10-09 21:18:41 30 1

原创 面向对象

面向对象是一种软件开发,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据建库系统、交互式界面、应用结构、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高层次来进行 系统建模,更贴近事物的自然运行模式。

2023-10-06 22:08:48 39 1

原创 【无标题】

递归和迭代(循环)是等价的循环可以做的,递归也能做,但是递归能做的,循环不一定能做递归需要频繁压栈弹栈,比较消耗内存,并且效率较低,所以循环能完成的,就不要使用递归比如 树状结构,目录遍历等 都需要使用递归完成递归 :直接递归 : 方法中调用当前方法(自己调用自己)间接递归 : 两个方法相互调用m1();// 直接递归// 注意 递归 也有符合 循环三要素// 初始值,终止条件,步长,否则会死循环// 因为一直压栈,不会弹栈,导致栈内存移出m1();// 间接递归m3();

2023-09-24 21:34:08 38 1

原创 【无标题】

/布尔型不能参与转换//低精度到高精度可以自动类型转换//高精度到低精度需要强制类型转换//浮点型 采用科学计数法进行存储//所以float的32位 可以存储的数据量大于long的64位f1 = l1;//byte-->short-->long-->float-->double 是自动类型 转换,反之则需要强制类型转换//字节 短整型 长整型 浮点型 双浮点型//高到低,需要强制类型转换。

2023-09-21 22:55:41 42

空空如也

空空如也

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

TA关注的人

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