日常问题记录
Demon_bh
这个作者很懒,什么都没留下…
展开
-
Java中的strip(), split() 分割字符串
jdk11引进了strip():用来去除字符串的前导和后缀空格eg:str = " hello world! ";str = str.strip();//str = "hello world!"split():加上正则化用来分割字符串1、正则表达式\s表示匹配任何空白字符,+表示匹配一次或多次。str = " hello world! ";String[] words = str.split("\\s+"); //按照一个或多个空...原创 2021-10-24 18:19:04 · 5378 阅读 · 0 评论 -
java中List<Integer>转化为int[]的方法
1、遍历List中的元素添加到int[]数组中List<Integer> list = new ArrayList<>();int[] res = new int[list.size()];int i = 0;for(Integer num : list) { res[i] = num;}2、利用Java8的stream()int[] res = list.stream().mapToInt(Integer::intValue).toArra..原创 2021-10-13 18:36:33 · 4744 阅读 · 3 评论 -
Java中小数默认为double类型
A:5.3e12表示5.3乘以10的12次方,正确B:在Java中,如果你输入一个小数,系统默认的是double类型的,这个式子相当于float f=double 11.1,明显错误,如果想要表达11.1为float类型的,需要在11.1末尾加一个f标识你输入的是float类型即可C:0.0是小数,默认是double,不是intD:Dbuble是基本类的封装类,不可直接赋值...原创 2021-10-05 21:48:35 · 5456 阅读 · 0 评论 -
volatile为什么不能保证原子性(能保证可见性)
Java中只有对基本类型变量的赋值和读取是原子操作,如i = 1的赋值操作,但是像j = i或者i++这样的操作都不是原子操作,因为他们都进行了多次原子操作,比如先读取i的值,再将i的值赋值给j,两个原子操作加起来就不是原子操作了。所以,如果一个变量被volatile修饰了,那么肯定可以保证每次读取这个变量值的时候得到的值是最新的(可见性),但是一旦需要对变量进行自增这样的非原子操作,就不会保证这个变量的原子性了。举个栗子一个变量i被volatile修饰,两个线程想对这个变量修改,都对其...原创 2021-10-04 23:22:41 · 402 阅读 · 0 评论 -
conda安装python包出错:Collecting package metadata: failed NotWritableError
最近在服务器上用conda命令安装python依赖包时总是报错,如下:Collecting package metadata (current_repodata.json): failedNotWritableError: The current user does not have write permissions to a required path. path: /opt/anaconda3/pkgs/cache/8f77de01.json uid: 984 gid: 98...原创 2021-09-27 21:49:27 · 1646 阅读 · 1 评论