java基础
文章平均质量分 55
aoxida
这个作者很懒,什么都没留下…
展开
-
JDK8 stream常用的几个方法
map可以使用map方法把对象中的某个属性取出后,重新(加工)组成新的列表。 Student s1 = new Student("AB-1", 10); Student s2 = new Student("CD-2", 12); Student s3 = new Student("EF-3", 15); List<Student> list = new ArrayList<>(); list.a.原创 2021-12-07 16:58:24 · 635 阅读 · 0 评论 -
面试官又整新活,居然问我for循环用i++和++i哪个效率高?
前几天,一个小伙伴告诉我,他在面试的时候被面试官问了这么一个问题:在for循环中,到底应该用 i++ 还是 ++i ?听到这,我感觉这面试官确实有点不按套路出牌了,放着好好的八股文不问,净整些幺蛾子的东西。在临走的时候,小伙伴问面试官这道题的答案是什么,面试官没有明确告诉答案,只是说让从程序执行的效率角度自己思考一下。好吧,既然这个问题被抛了出来,那我们就见招拆招,也给以后面试的小伙伴们排一下坑。思路前面提到,这个搞事情的面试官说要从执行效率的角度思考,那我们就抛开语义上的区别,从运转载 2021-11-25 11:00:49 · 154 阅读 · 0 评论 -
Long包装类的比较
要比较Long类型的值的,不能直接用 == ,某些情况下会出问题:Long类中,有一个内部类LongCache,对-128到127的数值做了缓存,这个范围内的使用==是可以返回正确的值,超过这个范围就不成立。可以直接使用equals方法,因为Long重写了equals方法,如下public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)ob.原创 2021-07-05 17:01:57 · 548 阅读 · 0 评论 -
CountDownLatch用法详解
概念CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程执行完后再执行。例如,应用程序的主线程希望在负责启动框架服务的线程已经启动所有框架服务之后执行。CountDownLatch的用法CountDownLatch典型用法1:某一线程在开始运行前等待n个线程执行完毕。将CountDownLatch的计数器初始化为nnew CountDownLatch(n),每当一个任务线程执行完毕,就将计数器减1countdownlatch.countDown(),当计...转载 2020-05-15 10:47:23 · 852 阅读 · 0 评论 -
解释BigDecimal精度的坑
问题重现BigDecimal b1 = new BigDecimal(0.1);BigDecimal b2 = new BigDecimal(0.5);System.out.println("b1="+b1+"\nb2="+b2);---------------结果----------------------b1=0.1000000000000000055511151231257827...转载 2020-04-24 16:24:33 · 566 阅读 · 0 评论 -
理解Java中的引用传递和值传递
关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题,有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性,感兴趣的同学一起讨论。1.基本类型和引用类型在内存中的保存Java中数据类型分为两大类,基本类型和对象类型。相应的,变量也有两种类型:基本类型和引用类型。基本类型的变量保存原始值,即它代表的值就是数值本身;而引用类型的...转载 2020-03-17 18:06:21 · 126 阅读 · 0 评论 -
Java多线程:由浅入深看synchronized的底层实现原理
前言前两篇文章,我们聊了聊线程/进程的概念,接着简单串了一下同步的方式方法。今天我们就单拎出来synchronized,好好捋一捋它的前世今生。正文小A:咱们前几天铺垫了这么多内容,今天是不是要好好的深挖一下原理的内容了?MDove:没错,接下来。我会从常见的synchronized加锁方式入手;引出Java对象在内存的布局,以及锁的存放位置;然后看一看锁在C++中的简单实现...转载 2019-10-12 15:14:32 · 194 阅读 · 0 评论 -
【Java并发编程之深入理解】Synchronized的使用
1.为什么要使用synchronized在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。2.实现原理synchronized可以保证方法或者代码块在运行时,同一时...转载 2019-10-12 15:13:40 · 157 阅读 · 0 评论 -
StringUtils的isBlank与isEmply
制表符、换行符、换页符和回车符转载 2016-03-26 14:38:20 · 884 阅读 · 0 评论 -
java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时转载 2016-03-31 16:06:35 · 575 阅读 · 0 评论 -
Java泛型的实现原理
由于前一段时间发现公司有些代码重复性很大,可以使用泛型方法简化,所以向领导提出,领导就让我整理了一下关于泛型的只是分享给大家。一、Java泛型介绍 泛型是Java 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java泛型被引入的好处是安全转载 2016-03-01 17:54:02 · 12474 阅读 · 3 评论 -
\n \r 理解
Unix系统里,每行结尾只有“”,即“\n”;Windows系统里面,每行结尾是“”,即“\n\r”;Mac系统里,每行结尾是“”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。原创 2013-05-28 14:05:51 · 872 阅读 · 0 评论 -
字符串所有可能的排列 例如abcd等等 递归算法和排列组合知识结合
可以用在md5编码等package test;import java.util.ArrayList;import java.util.Collections;import java.util.List;import com.eetrust.raf.core.utils.encrypt.SecureMD5;/** * * @author chenhui * */pu原创 2012-12-13 16:59:21 · 3572 阅读 · 0 评论 -
map的两种迭代方法
map的两种迭代方法: public static void main(String[] args) { Map hashmap = new HashMap(); for (int i = 0; i < 1000; i++) { hashmap.put("" + i, "hello" + i); } long s1 = System.currentTimeMillis(原创 2012-09-13 13:46:05 · 1054 阅读 · 0 评论 -
java静态方法注意的问题
静态方法中,list中的对象尽量别写与数据库相关的实体类,使用自己新写的内部类原创 2012-07-23 14:10:34 · 484 阅读 · 0 评论 -
String.split()用法的一点经验
在java.lang包中有String.split()方法,返回是一个数组我在应用中用到一些,给大家总结一下,仅供大家参考:1、如果用“.”作为分隔的话,必须是如下写法:String.split("\\."),这样才能正确的分隔开,不能用String.split(".");2、如果用“|”作为分隔的话,必须是如下写法:String.split("\\|"),这样才能正确的分隔开,不能用原创 2012-03-06 14:45:51 · 469 阅读 · 0 评论 -
判断文件文件夹存在与否 创建文件夹
如果是文件夹String s = "e:/1/2/3/4/5"; File f = new File(s); if (!f.exists()) { f.mkdirs(); } 使用 f.mkdirs();会一级一级的创建文件夹, f.mkdir();只创建一级f.isDirectory()是判断是否原创 2012-01-13 09:57:57 · 947 阅读 · 0 评论 -
list如何remove
在java中对list进行操作很频繁,特别是进行list启遍历,这些操作我们都会,也很熟悉,但是对java中list进行删除元素,removelist中的元素就不怎么熟悉了吧,可以说很陌生,是实际操作中也很容易出错,先看看下面这个java中如何remove list中的元素吧.public class test {public static voidmain(String[]转载 2011-11-29 17:11:50 · 508 阅读 · 0 评论