
Java
文章平均质量分 64
启四
这个作者很懒,什么都没留下…
展开
-
面试官:死锁是什么?它是怎么产生的?如何避免?
一、死锁是什么?死锁就是有两个或者多个进程由于竞争资源而造成阻塞的现象,如果无外力作用,这种局面就会一直持续下去。案例:两个人共享红蓝钥匙,都要执行获取钥匙,打开两扇门,最后归还钥匙的操作。如下图这样就会导致死锁:二、死锁产生的四大条件死锁产生必须满足四个必要条件:1、互斥条件:指在一段时间内某资源只能由一个进程占用。只有一副钥匙2、请求和保持条件:指进程已经保持至少一个资源,但又提出了新的资源请求,且对自己已获得的其它资源保持不放。拿着红钥匙的人在没有归还红钥匙的情况下,又索要蓝钥原创 2021-03-09 20:24:27 · 3187 阅读 · 1 评论 -
当面试官问到HashMap时,我们应该聊些什么?
前言本文仅作为作者的学习记录和回顾,不建议作为学习参考。推荐学习这篇文章:https://blog.youkuaiyun.com/w410589502/article/details/79636535HashMap中涉及的知识点0、HashMap的使用及特性hashMap可以接受key或者value为null;hashMap是非Synchronized的;hashMap存储的是键值对。1、hashing的概念散列法(Hashing)或哈希法是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或原创 2021-03-09 00:22:41 · 237 阅读 · 0 评论 -
通俗解释hash碰撞是什么以及如何解决
Hash如何存数据hash表的本质其实就是数组,hash表中通常存放的是键值对Entry。如下图:这里的学号是个key,哈希表就是根据key值来通过哈希函数计算得到一个值,这个值就是下标值,用来确定这个Entry要存放在哈希表中哪个位置。Hash碰撞hash碰撞指的是,两个不同的值(比如张三、李四的学号)经过hash计算后,得到的hash值相同,后来的李四要放到原来的张三的位置,但是数组的位置已经被张三占了,导致冲突。解决方法hash碰撞的解决方式是开放寻址法和拉..原创 2021-03-08 00:59:57 · 24160 阅读 · 6 评论 -
SpringBoot线程池如何配置?
三个步骤:1、在项目主类中添加@EnableAsync注解@SpringBootApplication@EnableAsyncpublic class MySpringBootApplication { private static Logger logger = LoggerFactory.getLogger(MySpringBootApplication.class); ...原创 2020-03-13 01:06:33 · 2293 阅读 · 0 评论 -
@Transactional注解怎么使用?
@Transactional注解的使用:1、在方法或者类上都可以添加,如果在类上添加,则此类中的所有方法都会执行事务,不推荐,因为可能后续接手开发的小伙伴添加方法的时候根本不需要执行事务;2、触发事务回滚有两种方式:a. 方法抛出异常自动进行回滚;如果使用了try catch,要在catch中抛出异常; b. 手动执行回滚:在方法中添加:TransactionAsceptSuppor...原创 2020-03-13 00:32:21 · 3316 阅读 · 0 评论 -
为什么使用Junit Test而不用普通java main方法来完成测试?
为什么大家都在用junit4?百度一下结合着使用有些明白了因为在程序里边,一个接口对应一个实现方法,而在接口中常常会定义相关的很多方法,所以在测试的时候,如果都在main方法里边进行测试,main方法就会显得臃肿,而且不便于以后其他人测试以及查看测试数据,用Junit Test测试的话,一个方法对应一个测试方法,简单明了,也方便别人查看测试方法以及测试数据。 如果你的类里有多...翻译 2017-02-22 10:58:06 · 7438 阅读 · 1 评论 -
HttpServlet cannot be resolved to a type解决办法
在文章Java中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具中从IBMBluemix上下载的Java示例代码,导入到Eclipse之后,出现以上错误信息!错误原因:Eclipse是刚刚安装的,还没有配置服务器运行环境!解决办法:1、首先要安装一下Tomcat;通常是下载一个zip压缩包,解压一下就可以了;2、Eclipse...原创 2016-12-03 23:07:22 · 3930 阅读 · 0 评论 -
Java线程池之ThreadPoolExecutor的使用
以下是自定义线程池,使用了有界队列,自定义ThreadFactory和拒绝策略的demo:import java.io.IOException;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * 以下是自定义线程池,使用了有界队列,自定义ThreadFactory和拒绝...原创 2019-03-03 22:42:12 · 274 阅读 · 0 评论 -
JVM minor gc与full gc原理图
原创 2019-04-04 09:32:17 · 416 阅读 · 0 评论 -
JVM加载class文件的原理机制
Java中的所有类,都需要由类加载器装载到JVM中才能运行。类加载器本身也是一个类,而它的工作就是把class文件从硬盘读取到内存中。在写程序的时候,我们几乎不需要关心类的加载,因为这些都是隐式装载的,除非我们有特殊的用法,像是反射,就需要显式的加载所需要的类。 Java类的加载是动态的,它并不会一次性将所有类全部加载后再运行,而是保证程序运行的基础类(像是基类)完全加载到jvm中,至于...转载 2018-03-03 01:05:18 · 406 阅读 · 0 评论 -
openSession() 与 getCurrentSession() 有何不同和关联呢?
* 在 SessionFactory 启动的时候, Hibernate 会根据配置创建相应的 CurrentSessionContext ,在 getCurrentSession() 被调用的时候,实际被执行的方法是 CurrentSessionContext.currentSession() 。在 currentSession() 执行时,如果当前 Session 为空, currentSess原创 2017-03-30 09:39:07 · 501 阅读 · 0 评论 -
this关键字
this关键字(调用属性):类中的属性调用,以后都要加上this;this关键字(调用方法):类中的构造方法间的互相调用,一定要保留出口(即不要每一个构造方法都用this();调用别的构造方法);this关键字(表示当前对象):this表示当前对象,指的是当前正在调用类中方法的对象,this不是一个固定的;原创 2016-10-14 09:18:06 · 267 阅读 · 0 评论 -
面向对象的三大特性
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。在Java中类中成员的属性有:public, protected, , private,这四个属性的访问权限依次降低。继承面向对象编程 (OOP) 语言的一个主要功能就是转载 2016-10-13 18:14:01 · 267 阅读 · 0 评论 -
java集合框架浅析
前言:在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework)。Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率。转载 2016-10-25 09:29:43 · 365 阅读 · 0 评论 -
java中类与类之间的关系
一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类,或者子接口指向父接口。 二、实现关系 实现指的是一个class类实现interface接口(转载 2016-10-18 09:12:51 · 343 阅读 · 0 评论 -
怎么实现代码的重用性?
代码重用原创 2016-10-14 10:28:05 · 9908 阅读 · 1 评论 -
Java程序员面试中的多线程问题
网址:http://blog.jobbole.com/18571/原创 2016-10-27 16:54:38 · 328 阅读 · 0 评论 -
Java中的异常处理机制
java把所有非正常情况分成两种:异常(Exception)和错误(Error),都是继承自Throwable父类。 Error错误:一般是指虚拟机相关的问题,如系统崩溃,虚拟机出错误等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常不处理。 Exception异常:指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。 异常是一个原创 2016-10-18 17:59:12 · 657 阅读 · 0 评论 -
Could not obtain transaction-synchronized Session for current thread
在测试类中加上一个@Transactional的注解,同时在pom.xml中也要加事务的依赖原创 2017-03-30 09:31:47 · 598 阅读 · 0 评论 -
java语言中的继承
知识点:protected关键字同包子类可以访问父类的public/protected/(default) 方法不同包子类可以访问父类的public/protected继承的default方法按照父类计算是否同包访问权限修饰符的规则是一样的继承中的构造方法先执行父类的构造方法,再执行子类的构造方法默认情况下,调用父类的原创 2016-10-13 17:25:18 · 470 阅读 · 0 评论