首页
学习
活动
专区
工具
TVP
发布

Java患者

专栏作者
63
文章
33604
阅读量
12
订阅数
Java基础知识(十三)--线程池
线程池 线程池的概述 程序启动一个新线程成本是比较高的,因为它涉及到要与操作系统进行交互.而使用线程池可以很好的提高性能,尤其是当程序中要创建大量生存期很短的线程时,更应该考虑使用线程池.线程池里的每一个线程代码结束后,并不会死亡,而是再次回到线程池中成为空闲状态,等待下一个对象来使用.在JDK5之前,我们必须手动实现自己的线程池,从JDK5开始,java内置支持线程池 内置线程池的使用步骤 创建线程池对象 创建Runnable实例 提交Runnable实例 关闭线程池 // public static
用户7386338
2021-06-22
2000
Java基础知识(十二)--多线程通信
两个线程间的通信 什么时候需要通信 多个线程并发执行时,在默认情况下CPU是随机切换线程的 如果我们希望他们有规律的执行.就可以使用通信,例如每个线程执行一次打印 怎么通信 如果希望线程等待,就调用wait() 如果希望唤醒等待的线程,就调用notify() 这两个方法必须在同步代码中执行,并且使用同步锁对象来调用 三个或者三个以上间的线程通信 notify()是随机唤醒一个线程 notifyAll()方法是唤醒所有线程 jdk5之前无法唤醒指定的一个线程 如果多个线程之间通信,需要使用notifyAll
用户7386338
2021-06-22
2330
Java基础知识(十一)--多线程
多线程(同步方法) 使用synchronized关键字修饰一个方法,该方法中所有的代码都是同步的 class Printer { public static void print1() { synchronized(Printer.class){ //锁对象可以是任意对象,但是被锁的代码需要保证是同一把锁,不能用匿名对象 System.out.print("程"); System.out.print("序"); System.out.print("员"); System
用户7386338
2021-06-22
1950
Java基础知识(十)--多线程
什么是线程 线程是程序执行的一条路径,一个进程中可以包含多条线程 多线程并发执行可以提高程序的效率,可以同时完成多项工作 多线程并行和并发的区别 并行就是两个任务同时进行,需要多核CPU 并发是指两个任务都请求运行,而处理器只能接受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行. java程序运行原理和jvm的启动是多线程的吗 java程序运行原理 java命令会启动java虚拟机,启动jvm,等于启动了一个应用程序,也就是启动过来一个进程,该进程会自动启动一个"主线程"
用户7386338
2021-05-14
2160
Java基础知识(九)--IO
IO 概念 IO流用来处理设备之间的数据传输 java对数据的操作是通过流的方式 java用于操作流的类都在io中 流按流向分为两种 : 输入流, 输出流 流按操作类型分为两种: 字节流 : 字节流可以操作任何数据,因为计算机中任何数据都是以字节的形式存储的 字符流: 字符流只能操作纯字符数据,比较方便 IO流常用父类 字节流的抽象父类: inputStream OutputStream 字符流的抽象父类: Reader Writer IO流FileInputStream FileInputStream f
用户7386338
2021-05-13
2800
Java基础知识(八)--异常
异常 异常的概述 异常就是Java程序在运行过程中出现的错误 Throwable Error Exception RuntimeException JVM默认是如何处理异常的 main函数收到这个问题时,有两种处理方式 自己将该问题处理,然后继续运行 自己没有针对的处理方式,只有交给调用main的jvm来处理 jvm有一个默认的异常处理机制,就将该异常进行处理, 并将该异常的名称,异常的信息,异常出现的位置打印在了控制台上,同时将程序停止运行 异常处理方式1 try......catch......fin
用户7386338
2021-05-13
2790
Java基础知识(七)--集合
集合 数组和集合存储引用数据类型,存的都是地址值 数组和集合的区别 数组长度是固定的,不能自动增长 集合的长度是可变的,可以根据元素的增加而增长 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值 集合只能存储引用数据类型(对象),集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象 区别1 区别2 集合框架 Vector跟List的特点 ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 相对Array
用户7386338
2021-05-13
4160
Java基础知识(六)--内部类
当t.play()方法出栈后,play中的局部变量就会随之销毁,但是我的内部类对象可能仍然存在的(当不再被使用才会被垃圾回收器回收)这时在内部类中访问了局部变量x,但此时的x已经被销毁,形成矛盾.
用户7386338
2021-05-13
1900
Java基础知识(五)--抽象类&接口
抽象类 抽象类概述 抽象类用来描述一种类型应该具备的基本特征与功能,具体如何去完成这些行为由子类通过方法重写来完成. 抽象类特点 抽象类和抽象方法必须用abstract关键字来修饰 抽象类不一定有抽象
用户7386338
2021-05-13
2900
Java基础知识(四)--多态
当代码这个样子的时候,(也就是说当编译类型和运行类型不同)多态就产生了.对象a具有两种类型
用户7386338
2021-05-13
2180
Java基础知识(三)
继承 继承的好处 提高了代码的复用性 提高了代码的维护性 让类与类之间产生了关系,是多态的前提 继承弊端 类的耦合性增强了 开发的原则:高内聚,低耦合 耦合:类与类的关系 内聚:就是自己完成某件事情的能力 继承特点 Java只支持单继承 Java支持多层继承(继承体系) 如果想用这个体系的所有功能用最底层的类创建对象 如果想看这个体系的共性功能,看最顶层的类 继承注意事项 子类只能继承父类所有非私有的成员(成员方法和成员变量) 子类不能继承父类的构造方法,但是可以通过super关键字去访问父类构造方法 不
用户7386338
2021-05-13
3570
Java基础知识(二)
static 关键字 特点 随着类的加载而加载 优先于对象存在 被类的所有对象共享 注意事项 静态方法: 非静态方法:静态变量和成员变量的区别 成员变量 : 只能访问静态变量 成员方法 : 只能访问静态成员方法 成员变量 : 可以是静态的,也可以是非静态的 成员方法: 可以是静态的成员方法, 也可以是非静态的成员方法 因为静态是随着类的加载而加载,this是随着对象的创建而存在 静态比对象先存在 在静态方法中是没有this关键字的, 静态方法只能访问静态的成员变量和静态的成员方法 所属不同: 静态变量属于
用户7386338
2021-05-13
2560
Redis过期策略以及淘汰机制
Redis中可以通过expire设置键的过期,那么Redis又是什么时候删除键的呢?
用户7386338
2020-10-10
4760
Redis中String数据类型原理实现
首先Redis是KV数据结构,跟JDK中的Map是一样的,Redis是通过hashtable实现的,我们把这个叫做外层的哈希,那么每一个KY就是一个entry,在Redis的源码中,是定义为一个dictEntry。
用户7386338
2020-10-10
3870
Java面试锦囊(十二)-- Eureka与Zookeeper区别
大多数的分布式系统都分布在多个服务器下的子网络。每个子网络就叫做一个区(partition)。
用户7386338
2020-07-29
5030
你连volatile都不在意,你在意什么,在意大利吗
深入理解Volatile 初步认识 public class ThreadDemo1 { public static boolean stop = false; public static void main(String[] args) { new Thread(() -> { try { Thread.sleep(1000); } catch (InterruptedException
用户7386338
2020-07-16
2420
多线程--锁的升级
在多线程并发编程中,synchronized一般我们认为是重量级锁,但是随着JDK1.6的优化之后,在一些情况下它就不显得那么重量级了,因为在JDK1.6中为了减少获得锁和释放锁带来的性能消耗而引入了偏向锁跟轻量级锁。
用户7386338
2020-07-14
4330
线程的终止与复位
简单了解上面的例子,创建一个线程 启动,睡眠一秒钟后中断该线程, 中断该线程之后, 通过isInterrupted()方法得到该线程的状态为true,这个时候会跳出while循环。
用户7386338
2020-07-07
9320
线程的生命周期
线程的六种状态: NEW、RUNNABLE、BIOCKED、WAITING、TIME_WAITING、TERMINATED。
用户7386338
2020-07-03
7330
从面向过程出发到函数式编程(下篇)
在上一个章节我们讲到Java程序的函数式编程是如何发展的而来的,那么本篇我们来说下Java为函数式编程提供哪些便利的地方。
用户7386338
2020-05-31
3210
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档