自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lock接口,Callable接口,线程池

自旋锁(无锁CAS):在多线程执行任务过程中,它不用上锁。它认为当前线程正在操作失误数据,其他线程不会改变。CAS(Compare And Swap),比较和交换同步锁(同步关键字):无论任何情况下,每个线程实现同步的效果。虽然它上锁安全,但效率低。公平锁非公平锁:同步锁属于非公平锁,因为在同步代码块中,谁先进入就先执行。

2025-07-27 19:06:44 524

原创 同步关键字

例题:多线程实现网络购票,用户在提交购票信息后,首先网站需要修改网站中的车票数据;然后显示出票信息给用户。它所存在的问题:使用多个线程抢票,属于一个数据被多个线程共享。因为线程之间没有先后顺序的规则,所有没有相互制约的关系,所以会导致重复卖出以及超卖的问题所以说多个线程必须排队,而且要保证在同一个时间只能有一个线程买票。前面线程购买完毕,后面才可以继续买。

2025-07-20 17:39:39 312

原创 主线程,创建线程,线程状态,优先级和休眠

多线程:如果在一个进程中同时运行了多个线程,用来完成不同工作,则称“多线程”。好处:1)充分利用CPU资源;2)简化编程模型;3)良好的用户体验。主线程:1)main()方法为主线程入口,底层由main线程执行,由JVM自动调用执行。2)产生其他子线程的线程3)它必须在最后完成执行,它会执行关闭动作Thread类:Java提供了java.long.Thread类支持多线程编程。每个线程都有优先权,具有较高优先级的线程优先于优先级较低的线程执行.

2025-06-22 06:05:49 843

原创 BufferedWriter,DataStream,ObjectStream,线程相关概念

BufferedWriter是Writer的子类,与OutputStreamWriter平级。它是带有缓冲区的,提高字符流写入文件的效率。写入的内容,先保存到缓冲区,调用flush方法,将缓冲区的内容刷新到硬盘上,提高写入效率。newLine():换行。

2025-06-12 19:48:48 253

原创 FileReader,BufferedReader,OutputStreamWriter,FileWriter

Filereader是InputStreamReader的子类,该类只能使用本地平台字符编码进行读取,不能指定其他的字符编码类型(System.out.println()System.getProperty("file.enconding")//获得本地平台的编码类型)。构造方法:read():每次读取一个字符,返回值为读取内容的ASCII码/Unicode编码,十进制,读取到末尾,返回-1。

2025-06-09 19:14:32 461

原创 File类,字节读取流、字节写入流

数据的传输可以看做是一种数据的流动,按照流动的方向,以内存为基准,分为输入input和输出output即流向内存的输入流,流出内存的输出流。Java中I/O操作主要是指使用java.io包下的内容,进行输入、输出操作。也叫做数据,也叫做作数据。:把数据从其他设备上读取到内存中的流。:把数据从内存中写出到其他设备上的流。

2025-06-01 18:29:20 764

原创 HashSet、TreeSet、Collections工具类、泛型

泛型的名称可以使用任何单词、字母等(但比较推荐使用公认的含义的一些大写字母)例如:K(Key,键)、V(Value,值)、T(Type,类型)、E(Element,元素)、R(Return,返回值)、P(Parameter,参数)、N(Number,数值)。泛型没有类型提升;泛型是统一固定数据类型的。extends 父类):表示泛型可以是父类,也可以是父类的任何子类类型,也给父类设置上限;super 子类):表示泛型可以是子类,也可以是任何子类的父类类型,也给子类类设置下限;

2025-05-25 19:23:02 839

原创 Hashtable、Properties、LinkedHashMap、TreeMap

HashMap类大致相当于Hashtable,除了它是不同步的,并允许null.Hashtable该类实现了一个哈希表,它将键映射到值,任何非null对象都可以用作键值或值两者之间的区别:HashMap是非线程安全的;初始数组长度16,第一次添加元素,将初始化数组长度16;它的扩容是原本的2倍Hashtable是线程安全的;初始数组长度11,在调用无参构造,初始化长度11的数组;它的扩容为2倍+1HashMap使用与运算获取应该存放的数组的下标(与运算效率更高)

2025-05-18 20:19:05 345

原创 Vector类/LinkedList常用方法和遍历/HashMap常用方法和遍历

ArrayList<E>可以调整大小的数组实现List接口,实现所有可选列表操作,并允许所有元素,包括null,该类还提供一些方法来操纵内部使用的存储列表的数组的大小,这个类大致相当于Vector,但不同的是,它不是同步的。它是非线程安全的,而Vector是线程安全的。Vector类有4个构造方法:Vector():构造一个空向量,使其内部数组数据的大小为10,标准容量增量为0extends E> c):构造一个包含指定集合元素的向量,按照集合的迭代器返回的顺序。

2025-05-11 20:47:09 884

原创 设计模式/单例模式/集合

设计模式为我们提供了一些经过验证的、能够应对常见问题的解决方案。学习和掌握设计模式能够让开发者在面对复杂的需求时,能够设计出更加灵活、可维护的代码。(工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式)、(适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式)、(策略模式、模板方式模式、观察者模式、迭代子模式、责任链子模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释模式),一共是23种。

2025-04-27 18:28:49 757

原创 【无标题】

SimpleDateFormat位于java.text包中,它是一个日期格式化的类,它允许日期转化为字符串,也可以将字符串转化为日期,且他有无参和有参两个构造方法:SimpleDateFormat():无参构造,以默认的格式转换以及解析日期SimpleDateFormat(String pattern):有参构造,以指定的格式进行转换和解析format(Date date):传进来的是日期,得到的是字符串parse(String source):传进来的是字符串,得到的是日期。

2025-04-20 20:23:00 605

原创 【无标题】

1.String类内底层实现它维护的是一个char数组,也可以解释为创建每一个字符串对象都以char数组的形式来保存。*注意:String类是不可改对象,任何对String对象内容修改,都将会产生一个新的字符串对象2.为什么String类是不可变对象1)底层是char数组维护的String对象,数组的长度是固定的2)该数组是被final修饰,表示不能指向新的地址,且同时被private修饰,不能被外界访问。

2025-04-13 15:59:11 801

原创 【无标题】

System 类是系统类,用于获取系统信息的各种方法,位于 java.lang 包下,是一个 final 类,意味着它不能被继承。而且它的所有构造方法都是私有的,无法创建System类的实例,只能通过类名来调用静态方法System.in:默认情况下与键盘输入关联,用于接收用户输入数据System.out:用于向控制台打印信息System.err:主要用于输出错误信息。

2025-04-06 12:41:33 785

原创 【无标题】

将基本类型数据转换为对象,将基本类型作为对象来处理,这就出现了包装类。同时我们也知道基本数据类型有8个(byte,short,int,long,float,double,boolean,char),那么包装类也有8个,包装类就是基本数据类型首字母大写,每个基本数据类型都在java.lang中以一个对应的包装类(注意:int=Integer,char=Character)。所有包装类都可以与与之对应的基本数据类型作为参数,来构造他们的实例;

2025-03-30 09:20:45 593

原创 【无标题】

概念:当JDK提供的异常不能满足开发需求时,我们可以自定义异常。1.继承异常父类 Throwable、Exception、RuntimeException,三个其中之一。2.调用父类中的有参构造完成异常初始化//自定义学生类//封装return age;}else{throw new RuntimeException("年龄不合法" +age);//使用throw,运行时异常stu1.setName("张三");System.out.println("程序结束");

2025-03-23 16:19:04 375

原创 【无标题】

运行结果:使用彩色墨盒墨盒在A4纸张上打印。

2025-03-16 18:04:42 767

原创 【无标题】

被final修饰的属性称之为常量,其值或地址都不能被改变,这样的数据通常没有必要存在多份,所以在实际开发中经常会用static final修饰不允许被改变的数据。在java中,接口是一种引用数据类型,它只包含常量,嵌套,方法签名。1)基本数据类型:值不能被改变,通常在定义的时候赋值或者在构造方法中赋值,这都是为了保证在使用常量之前是有值的。5.一个类只能继承一个父类,一个实现类可以实现多个接口,接口也可以继承多个接口。接口是关心实现类的能力,而不关心实现细节,谁符合接口的要求,谁就可以进行连接。

2025-03-09 11:03:19 367

原创 Java续写

关于方法表,方法表是一个存在于类信息文件中的数组,保存当前类中的方法,继承和重写的方法。因为可以被子类重写的方法,会在多个子类中进行重写,而new对象的操作是在程序运营期间才执行的,所以在编译阶段,唯独可以确定的是等号左侧的类型,而不能确定的是等号右侧的对象。子类可以写同名同参数同返回值的静态方法,只是对父类相同静态方法的隐藏,无法覆盖,因为通过指向对象的父类引用还可以继续访问父类中的静态方法。因为在编译期间无法确定方法的版本信息,所以必须在程序运行过程中,才确定调用哪个类的方法,所以虚方法属于动态绑定。

2024-12-29 18:51:45 244

原创 Java学习内容

不能同时使用this和super访问本类以及父类的构造方法,但可以同时访问其他属性和方法,子类中的每一个构造方法,都默认访问(调用)父类中的无参构造方法,除非在子类构造方法中访问了父类中的有参构造方法,则不再访问父类的无参构造方法了。固定位置的元素与其他元素依次比较大小,遇到需要交换位置的元素,先不交换,使用应该被交换位置的元素,继续往后比较,等待一轮比较完成,统一交换一次位置。用于隐藏类的内部实现细节,防止外部类随意修改类的内部状态,保证数据的完整性和安全性,常用于类的内部辅助方法或属性。

2024-11-23 19:11:15 1106 1

空空如也

空空如也

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

TA关注的人

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