
java基础
我是嘉心糖
这个作者很懒,什么都没留下…
展开
-
关于PriorityQueue乱序(失序)的问题,坑b
我们发现这个序列是无序的,我下意识以为是priorityQueue无序了,其实并不是,只是方法用错了而已,本质上priorityQueue是一个完全二叉树,做一个小顶堆的操作,所以输出的数组是一个二叉树,不能直接使用,假如要获得有序的队列,估计只能一个一个迭代,poll出来。原创 2023-02-24 13:11:45 · 436 阅读 · 0 评论 -
多线程的synchronize问题(1)
多线程有挺多东西要注意的:一.资源竞争问题当多个线程,同时访问一个资源的时候,对资源进行更改,可能就会出问题。改变一个资源有三步1.读取文件获得副本2.更改文件副本3.将副本写入内存而在多线程里面,这些步骤可能都会被中途打断,导致痴线意想不到的结果。假如要想实现改变一个资源,必须满足原子性的特征。二.synchronize到底是给谁加锁。静态方法前加入synchronize,由于该类可能未被实例化,所以加锁的肯定不是this,而是由一开始就创建的该类的字节码文件.classpubli.原创 2020-08-05 20:11:20 · 250 阅读 · 0 评论 -
Day-04 循环,分支if,switch
Day-04 循环一.ifif(){}else if(boolean a){}二.switchswitch(a){ case 1:....break; case 2:....break; default:;}其中a可以是int,boolean,char,还有String类型三.forfor(初始化赋值;终止条件;每次循环开始时调用的语句){}for(int i =0;i<100;i++){ //i从0开始,到i=100结束,循环100次}...原创 2020-07-16 20:48:31 · 148 阅读 · 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 · 153 阅读 · 0 评论 -
Day-02 java的数据类型
Day-02 java的数据类型一.什么是变量和常量保持不变的量是常量,常用psf,变量是可以进行赋值的量声明的方式常量:public static final 数据类型 常量名(大写)变量:访问权限修饰符 数据类型 变量名字二.java的关键字有什么abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextends原创 2020-07-14 19:26:11 · 150 阅读 · 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 · 155 阅读 · 0 评论