
Java基础
文章平均质量分 57
快乐的大儿童附体
沧浪之水清兮,可以濯吾缨
展开
-
Java集合、集合内常用方法、如何遍历Set、List、Map
不知道你是否像我一样,写题的时候经常不知道选什么样的数据类型来存储数据,有时候选好了数据类型(比如ListedList),又不知道该数据类型下面包含哪些方法,每次都特别痛苦。那么整理一下吧。Java集合整体框架Java集合遍历Set的方式。第一种:for each//同样的for each写法for (Entry<String, String> entry: map.entrySet()) { int key = entry.getKey(); S原创 2021-08-01 21:55:33 · 127 阅读 · 0 评论 -
Spring AOP IOC DI-相关整理
AOPAOP(Aspect Oriented Programming)称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待。1. AOP将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块之间的耦合度,并有利于未来的可操作性和可维护性。2. AOP的相关概念:(1)横切关注点:对哪些方法进行拦截,拦截..原创 2020-06-12 21:10:55 · 141 阅读 · 0 评论 -
线程池相关-个人总结
线程池的7个参数的理解ThreadPoolExecutor mExecutor = new ThreadPoolExecutor(corePoolSize,// 核心线程数 maximumPoolSize, // 最大线程数 keepAliveTime, // 闲置线程存活时间 TimeUnit.MILLISECONDS,// 时间单位 new LinkedBlockingDeque<Runnable>(),// 线程队列 Exe原创 2020-06-04 12:09:19 · 121 阅读 · 0 评论 -
什么是循环依赖?Spring是如何解决循环依赖这个问题的?
什么是循环依赖?其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。怎么产生的?Spring的单例对象的初始化主要分为三步:(1)createBeanInstance:实例化,其实也就是调用对象的构造方法实例化对象(2)populateBean:填充属性,这一步主要是多bean的依赖属性进行填充(3)initializeBean:调用spring xml中的init方法。从上面讲述的单例bean初始化步骤我.原创 2020-06-23 19:21:48 · 541 阅读 · 0 评论 -
面试-synchronized和ReentrantLock的区别
从以下五个点答就行。(1)synchronized是独占锁,加锁和解锁的过程自动进行,易于操作,但不够灵活。ReentrantLock也是独占锁,加锁和解锁的过程需要手动进行,不易操作,但非常灵活。(2)synchronized可重入,因为加锁和解锁自动进行,不必担心最后是否释放锁;ReentrantLock也可重入,但加锁和解锁需要手动进行,且次数需一样,否则其他线程无法获得锁。(3)synchronized不可响应中断,一个线程获取不到锁就一直等着;ReentrantLock可以原创 2020-06-07 17:33:23 · 288 阅读 · 0 评论 -
Java中 String、StringBuffer与StringBuilder有什么区别?
原创 2020-06-25 21:34:20 · 137 阅读 · 0 评论 -
什么是死锁?死锁的产生必须满足的条件是什么?手写一个死锁吧-Java
死锁指的是两个或者多个线程,因争夺资源而造成的相互等待的情况。产生死锁的原因有主要还是系统资源分配不均(系统资源不足)。死锁有4个必须满足的条件:1. 请求保持条件。至少得有一个线程已经拿到了A资源,又去请求B资源2. 不可剥夺。拿到资源后,不能被强行夺走。3.互斥条件。使用的资源至少要有一个是不能共享的,需要互斥访问。4.循环等待条件。A等B,B等C也就是说只要破坏这四个条件中的任何一个,死锁便不成立。public class DeadLock implement.原创 2020-06-23 16:39:44 · 216 阅读 · 0 评论 -
遍历HashMap的几种方式以及如何获得Hashmap的key和Vaue-Java
一般用的时候分为以下几种情况。For-Each循环是Java5新引入的,遍历的map是null的话,For-Each循环会抛出NullPointerException异常,所以在遍历之前你应该判断是否为空引用。1. 遍历key(比entrySet迭代快一点点)这个方法比entrySet迭代具有轻微的性能优势(大约快10%) for(Integer key: map.keySet()){ System.out.println(key); .原创 2020-06-14 18:42:26 · 5833 阅读 · 0 评论 -
Integer 和Int的区别+new Integer和int值比较的问题
Integer是包装类,需要实例化才能用,默认值是null,存的是对象的引用。Int是基础数据类型,直接可以用, 默认值是0, 直接存数据。Integer重写了equals,比较的是值public class IntegerTest { public static void main(String[] args) { Integer a = 1; Integer d = 1; int b = 1; Intege...原创 2020-06-10 16:16:21 · 224 阅读 · 0 评论 -
Java八大基础数据类型有哪些?分别有多少字节?
下午人人车面试问到了这个问题,很早之前看过,问的基础数据类型有哪些,分别有多少位。回答出了7个,byte没回答出。原创 2020-06-10 18:29:24 · 259 阅读 · 0 评论 -
转发forward和重定向redirect的区别有哪些?
forward(转发):是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳转动作,所以它的地址栏还是原来的地址.redirect(重定向):是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.转发是服务器行为,重定向是客户端行为。区别:1. 从地址栏显.原创 2020-06-13 15:17:15 · 262 阅读 · 0 评论