java基础
我是嘉心糖
这个作者很懒,什么都没留下…
展开
-
关于PriorityQueue乱序(失序)的问题,坑b
我们发现这个序列是无序的,我下意识以为是priorityQueue无序了,其实并不是,只是方法用错了而已,本质上priorityQueue是一个完全二叉树,做一个小顶堆的操作,所以输出的数组是一个二叉树,不能直接使用,假如要获得有序的队列,估计只能一个一个迭代,poll出来。原创 2023-02-24 13:11:45 · 217 阅读 · 0 评论 -
多线程的synchronize问题(1)
多线程有挺多东西要注意的: 一.资源竞争问题 当多个线程,同时访问一个资源的时候,对资源进行更改,可能就会出问题。 改变一个资源有三步 1.读取文件获得副本 2.更改文件副本 3.将副本写入内存 而在多线程里面,这些步骤可能都会被中途打断,导致痴线意想不到的结果。 假如要想实现改变一个资源,必须满足原子性的特征。 二.synchronize到底是给谁加锁。 静态方法前加入synchronize,由于该类可能未被实例化,所以加锁的肯定不是this,而是由一开始就创建的该类的字节码文件.class publi.原创 2020-08-05 20:11:20 · 203 阅读 · 0 评论 -
Day-04 循环,分支if,switch
Day-04 循环 一.if if(){ }else if(boolean a){ } 二.switch switch(a){ case 1:....break; case 2:....break; default:; } 其中a可以是int,boolean,char,还有String类型 三.for for(初始化赋值;终止条件;每次循环开始时调用的语句){ } for(int i =0;i<100;i++){ //i从0开始,到i=100结束,循环100次 } ...原创 2020-07-16 20:48:31 · 93 阅读 · 0 评论 -
Day-03 运算符,变量要注意的点,scanner的使用
Day-03 运算符,变量要注意的点,scanner的使用 一.思维导图 二.运算符 1.算数运算符 2.赋值运算符 3.关系运算符 4.逻辑运算符 三.Scanner的使用 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); float b = sc.nextFloat(); String c = sc.next();//两者不一样,next会读取下一个空格前的东西。 String d = sc.nextLine();//nex原创 2020-07-15 20:12:57 · 100 阅读 · 0 评论 -
Day-02 java的数据类型
Day-02 java的数据类型 一.什么是变量和常量 保持不变的量是常量,常用psf,变量是可以进行赋值的量 声明的方式 常量: public static final 数据类型 常量名(大写) 变量: 访问权限修饰符 数据类型 变量名字 二.java的关键字有什么 abstract assert boolean break byte case catch char class const continue default do double else enum extends原创 2020-07-14 19:26:11 · 106 阅读 · 0 评论 -
Day-01 java的简介(jdk,jre,jvm,环境变量,第一个hello)
Day-01 java的简介(jdk,jre,jvm,环境变量,第一个hello) 一.jdk,jre,jvm **JDK(java development kit)**开发时的工具包 = JRE(java runtime enviorment)+开发工具 .java开始由编译器编译,生成.class(字节码)文件,生成的.class文件交付于jvm处理,jvm虚拟机是负责解释字节码,生成机械码,可以在本地运行。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zUrEsXHA原创 2020-07-13 19:29:04 · 98 阅读 · 0 评论