
Java基础
Alyssa_xiong
这个作者很懒,什么都没留下…
展开
-
排序
原创 2020-05-08 09:44:03 · 298 阅读 · 0 评论 -
HashMap、HashTable、ConcurrentHashMap的理解
HashMap、LinkedHashMap、TreeMap、SortedMap、ConcurrentHashMap之间的区别java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashm...原创 2020-03-20 11:01:28 · 270 阅读 · 0 评论 -
Set、TreeSet、HashSet区别
Set,TreeSet,HashSet,SortedSet,LinkedHashSet的区别(1)Set接口不允许出现重复的元素,每个元素添加入set时,set集合会使用equals方法,判断集合中是否有相同的元素,如果有,就返回false,如果没有,才进行操作。同时set的元素是无序的,就是说输出set集合中元素时,不是按照存入的顺序进行输出的(2)HashSet是Set接口的实现类,H...原创 2020-03-20 10:57:43 · 1363 阅读 · 0 评论 -
HashMap底层分析及扩容
原创 2020-03-19 15:23:59 · 322 阅读 · 0 评论 -
线程面试题
1、进程、线程和协程的区别进程:是资源分配的最小单位,操作系统会给进程分配cpu和内存资源等。进程可以说是程序的一次运行,而一个进程可以有多个线程线程:是操作系统调用执行的最小单位,同时一个线程可以有多个协程一个进程由系统给分配资源,然后进程中的多个线程共享该进程的所有资源。线程不能脱离进程而存在。协程:比进程更加轻量级的存在。协程不是被操作系统内核所管理的,而完全是由程序所控制的。线程之...原创 2019-11-29 16:38:27 · 235 阅读 · 0 评论 -
Java基础面试题
1、java中正则表达式的使用(1)首先使用Pattern这个类去定义一个正则表达式规则;Pattern pattern=Pattern.compile(“正则规则”);(2)然后使用Matcher去匹配字符串和正则表达式Matcher matcher=pattern.match(str);(3)使用Matcher.find()方法去遍历所有符合规范的结果while(matcher.fi...原创 2019-11-27 19:34:16 · 486 阅读 · 0 评论 -
fail-fast和fail-saft的区别
fail-fast和fail-saft的区别这两种情况都是建立在使用Iterator对集合进行遍历操作时发生的。fail-fast:快速失败是指在使用iterator对集合遍历时,如果在遍历中对集合进行增加、删除元素操作时,会马上报出ConcurrentModificationException,如果是fail-saft,则不会报出这个异常在java.util包下的所有集合类都是快速失败的,而...原创 2019-11-27 19:30:42 · 263 阅读 · 0 评论 -
浅谈集合
1、集合的分类分类:下面的都是从底层分析区别:1、ArrayList和linkedlist和vector的区别:这三个集合都实现了list接口(1)ArrayList的底层是数组,而linkedlist的底层是双向链表vector的底层也是数组,(2)vector是线程安全的,而ArrayList和linkedlist是线程不安全的,因为vector的很多方法是用synchroni...原创 2019-10-08 18:49:10 · 206 阅读 · 0 评论 -
浅谈GC
浅谈GC1、什么是GC我们都知道,Java不同于C,C++的一点就是Java不需要手动回收垃圾资源,原因就是Java有GC所以,什么是GC呢?GC(Garbage Collection)就是垃圾收集的意思,我们在使用Java的时候不需要专门的编写内存回收和垃圾清理的代码,GC机制会自动帮你实现2、怎么判断一个对象是否死亡既然GC会自动帮我们清理垃圾,那么GC怎么知道哪些代码是要被清理的...原创 2019-09-11 10:05:01 · 452 阅读 · 0 评论 -
悲观锁和乐观锁
悲观锁和乐观锁的使用1、悲观锁悲观锁和乐观锁都是用于多线程上面的,悲观锁是假设每一次去拿数据的时候,都有别的线程对其进行修改,所以每次在拿数据的时候都会上锁这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中sync...原创 2019-09-05 09:34:25 · 548 阅读 · 0 评论 -
怎么使用JavaMailSender发送邮件
怎么实现程序发邮件功能在项目中,我们往往需要使用邮件功能给用户发送邮件,有可能是为了修改密码,有可能是激活账户,但是都避免不了让程序发邮件给已注册的用户。那么,怎么才能实现这个功能呢?首先我们要做好准备工作:要注册一个邮箱账号,同时在邮箱的设置中启动客户端smtp服务,同时记住开启时生成的激活码,后面的配置中会用到在maven项目的基础上导入jar包 <dependenc...原创 2019-09-04 16:39:21 · 1053 阅读 · 0 评论 -
Java生成对象的四种方式
Java生成对象的四种方式学习java的人都知道,java是面向对象的语言,那么对象又是什么呢?1. 对象对象:事务在问题领域的抽象可能这样说有人觉得太抽象了,举个例子吧 class person{ String name; int id; }可能在学校中,只需要知道学生的姓名和学号,所以只需要这两个属性但是如果换一个领域,例如在注册一个账号时,只需要知...原创 2019-09-04 10:15:06 · 792 阅读 · 0 评论 -
静态代理和动态代理
静态代理和动态代理(1)什么是代理?大道理上讲代理是一种软件设计模式,目的地希望能做到代码重用。具体上讲,代理这种设计模式是通过不直接访问被代理对象的方式,而访问被代理对象的方法。这个就好比 商户---->明星经纪人(代理)---->明星这种模式。我们可以不通过直接与明星对话的情况下,而通过明星经纪人(代理)与其产生间接对话。(2)什么情况下使用代理?设计模式中有一个设计...原创 2019-09-03 15:08:51 · 532 阅读 · 0 评论 -
Comparable和Comparator的区别
浅谈Comparable和Comparator1、相同点:都是java.util包下的接口,都是用来做比较的2、不同点:Comparable可以认为是内比较器,如果一个类实现了Comparable接口,就意味着该类支持排序,可以通过Collections.sort和Arrays.sort进行排序如果add到Collection的对象想要Collections.sort()进行自动排...原创 2019-09-03 10:34:19 · 336 阅读 · 0 评论