Java
顾缘君兮
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
InputStream.read()
read(byte[]b,intoff,intlen)将输入流中最多len个数据字节读入byte数组。尝试读取len个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。read(byte[]b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。以整数形式返回实际读取的字节数。read()从输入流中读取数据的下一个字节。InputStream有如下三个read方法。...原创 2022-07-15 15:03:29 · 3381 阅读 · 0 评论 -
instanceof 运算符
instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。原创 2022-07-14 19:58:06 · 522 阅读 · 0 评论 -
常见编码方式
常见编码方式ASCll码统一规定了英文字符与二进制位之间的关系,一共规定了128个字符的编码Unicode是一种所有符号的编码,将世界上所有的符号都纳入其中存在的问题是,Unicode只是一个符号集,只规定了符号的二进制代码,没有规定这个二进制代码该如何储存。为了解决这个问题,就有了Unicode的三种实现方式:UTF-8,UTF-16,UTF-32UTF-8它是一种可变长度的编码方式,可以用1~4个字节表示一个符号,根据不同的符号变化字节长度编码规则:1.对于单字节的符号,字节的第一位设原创 2021-04-06 17:43:09 · 3514 阅读 · 0 评论 -
Java反射机制
Java反射机制概述Java反射机制定义Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java 反射机制的功能1.在运行时判断任意一个对象所属的类。2.在运行时构造任意一个类的对象。3.在运行时判断任意一个类所具有的成员变量和方法。4.在运行时调用任意一个对象的方法。5.生成动态代理。Java 反射机制的应用场景1.逆向代码原创 2020-12-04 00:29:00 · 178 阅读 · 0 评论 -
生产者消费者问题
生产者/消费者问题问题描述生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如果店中有产品了再通知消费者来取走产品。分析多线程,生产者线程和消费者线程共享数据是产品解决线程安全问题,同步机制线程间通信,wait()/notify()机制实现import原创 2020-11-08 20:43:30 · 195 阅读 · 0 评论 -
线程的通信之wait()notify()机制
线程的通信之wait()/notify()机制关于wait() 与 notify() 和 notifyAll()wait():令当前线程挂起并放弃CPU、同步资源并等待,使别的线程可访问并修改共享资源,而当前线程排队等候其他线程调用notify()或notifyAll()方法唤醒,唤醒后等待重新获得对监视器的所有权后才能继续执行。notify():唤醒正在排队等待同步资源的线程中优先级最高者结束等待notifyAll ():唤醒正在排队等待资源的所有线程结束等待.这三个方法只有在synchro原创 2020-11-08 16:33:46 · 201 阅读 · 0 评论 -
Lock锁方式解决线程安全问题
Lock锁方式解决线程安全问题概况从JDK 5.0开始,Java提供了更强大的线程同步机制——通过显式定义同步锁对象来实现同步。同步锁使用Lock对象充当。java.util.concurrent.locks.Lock接口是控制多个线程对共享资源进行访问的工具。锁提供了对共享资源的独占访问,每次只能有一个线程对Lock对象加锁,线程开始访问共享资源之前应先获得Lock对象。ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的并发性和内存语义,在实现线程安全的控原创 2020-11-06 20:43:56 · 2970 阅读 · 0 评论 -
死锁问题的产生条件,产生原因以及避免方法
死锁问题死锁不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁出现死锁后,不会出现异常,不会出现提示,只是所有的线程都处于阻塞状态,无法继续产生死锁的四个必要条件1.互斥性:线程对资源的占有是排他性的,一个资源只能被一个线程占有,直到释放。2.请求和保持条件:一个线程对请求被占有资源发生阻塞时,对已经获得的资源不释放。3.不剥夺:一个线程在释放资源之前,其他的线程无法剥夺占用。4.循环等待:发生死锁时,线程进入死循环,永久阻塞。产生死锁原因原创 2020-11-04 19:21:38 · 459 阅读 · 0 评论 -
线程安全问题(同步代码块,同步方法)
线程安全问题线程的生命周期线程的同步安全问题:多个线程执行的不确定性引起执行结果的不稳定多个线程对数据的共享会造成操作的不完整性,会破坏数据。举例和解决措施:三个窗口卖票,不采取措施会出现重票,错票等问题未加锁的原始代码:/* 创建三个窗口卖票,总票数为100张,使用实现Runnable接口方式 存在线程的安全问题,后面解决 *///1、创建一个实现Runnable接口的子类class Window implements Runnable{ private int t原创 2020-11-03 17:15:37 · 324 阅读 · 0 评论 -
Java创建多线程(继承Thread类,实现Runnable接口,实现Callable接口,使用线程池)
Java创建多线程Java语言的JVM允许程序运行多个线程,它通过java.lang.Thread类来体现。Thread类的特性每个线程都是通过某个特定Thread对象的run()方法来完成操作的,经常把run()方法的主体称为线程体通过该Thread对象的start()方法来启动这个线程,而非直接调用run()创建多线程的四种方式java中创建多线程的四种方式,分别是继承Thread类,实现Runnable接口,jdk5.0以后又增加了两种方式:实现Callable接口和使用线程池。继承原创 2020-11-02 00:16:51 · 4724 阅读 · 1 评论
分享