java 高级
文章平均质量分 61
主要介绍java的泛型、枚举、IO、集合、多线程以及JVM
会飞的鱼1993
java开发工程师
展开
-
JAVA高级之枚举
一、为什么java要引入枚举我们写程序时从一组值中取出一个,可能会用到如下的写法int[] intArray = {1,2,3,4};int num = intArray[2];if(num ==3){ //进行一些业务操作 ....}如上面代码,当num==3时,才会进行业务操作,如果此时程序员记错了数组中状态值的存储下标,在程序编译的时候并不会发现业务逻辑错误,从而导致了业务处理错误。若引用了枚举来标记状态值。如下:public enum Number{ one, two,原创 2021-03-03 14:55:45 · 184 阅读 · 0 评论 -
JAVA高级之泛型
一、JAVA为什么要引入泛型先看下面一段代码:public static void main(String[] args) { List list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add(13); for (int i = 0; i < list.size(); i++) { String str = (原创 2021-03-03 10:59:48 · 151 阅读 · 2 评论 -
满足某个条件时,移除list中的某个元素,导致的循环报错问题。
满足某个条件时,移除list中的某个元素,导致的循环报错问题。如下示例代码:public static void main(String[] args){ //构建list List<String> list = new ArrayList<String>(); list.add("苹果"); //向列表中添加数据 list.add("草莓"); //向列表中添加数据 list.add("香蕉"); //向列表中添加数据原创 2020-05-28 15:05:39 · 699 阅读 · 0 评论 -
多线程实用讲解
1.Java中实现多线程的方法继承Thread类实现Runnable接口实现Callable接口,并用FutureTask包装类创建线程使用executorService,callable,future实现由返回结果的多线程接口区别:1)、实现Runnable无返回值,2)、 实现Callable有返回值方法区别:1)、 execute() 方法用于提交不需要返回值的任务,所以无法判断任务是否被线程池执行成功与否;2)、 submit()方法用于提交需要返回值的任务。线程池会返回一原创 2020-05-22 11:07:44 · 381 阅读 · 0 评论 -
JVM核心点
1.jvm内存模型线程私有区:(1)程序计数器当同时进行的线程数超过CPU数或其内核数时,就要通过时间片轮询分派CPU的时间资源,不免发生线 程切换。这时,每个线程就需要一个属于自己的计数器来记录下一条要运行的指令。如果执行的是JAVA 方法,计数器记录正在执行的java字节码地址,如果执行的是native方法,则计数器为空。(2)虚拟机栈线程私有的,与线程在同一时间创建。管理JAVA方法执行的内存模型。每个方法执行时都会创建一个桢 栈来存储方法的的变量表、操作数栈、动态链接方法、返回值、返回地原创 2020-05-20 14:20:07 · 540 阅读 · 0 评论