![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
freezeriver
再努力一点点会更好
展开
-
利用java检测项目中线程不安全的类
public class ClassUtil { public static void main(String[] args) throws Exception { //System.out.println(System.getProperty("java.class.path")); checkUnsafeClass("xxxxxxxxxx"); ...原创 2018-08-18 11:29:32 · 246 阅读 · 0 评论 -
java中的引用(强引用,软引用,弱引用,虚引用)
1.强引用(StrongReference)最常见的引用,实现也很简单Object o = new Object();特点:强引用对象是个倔脾气,在JVM停止运行时才会终止,不然就算是置为null,甚至是OOM了也不会被GC2.软引用先说一下为什么要使用软引用,实际工作中可能会有这样的场景:我们需要查询我们之前几分钟的时间中查询的数据,一般来说,想快速获取到这些数据的话,需要把这些数据放...原创 2018-10-22 20:55:46 · 126 阅读 · 0 评论 -
为什么要重写equals和HashCode方法
同事问我的题,说我答不上来没法留在公司工作,答的不是很好,特此整理一下。对于这个问题,我觉得首先应该去思考的是原来的equals方法和HashCode方法是什么样的。原生的hashCode值是根据内存地址换算出来的一个值。原生的equals方法是严格判断两个对象是否相等的方法(object1 == object2)。然而在实际的应用过程中,我们需要的相等往往并不是绝对相等,而是对应的属性相...原创 2018-09-24 10:03:14 · 203 阅读 · 0 评论 -
为什么要使用线程池及常用的几种线程池
上次做笔试题的时候遇到的题,结果根本不会答,总的来说这道题还是蛮基础的,特此整理一下新技术的产生往往与日常生活开发中的问题息息相关,线程池也不例外。构建服务器应用的一个简单模型是,每当一个请求到达就创建一个新线程,而这样的缺陷也十分明显,每有一个请求就创建一个线程,这样所产生的资源消耗是非常巨大的,而在实际应用的大部分情况中,这些请求处理的时间很短但数量却是无比巨大的,除创建线程外,销毁线程也...原创 2018-09-24 10:01:14 · 3167 阅读 · 0 评论 -
java中Array和ArrayList的区别
这两个在平时的工作中都时常用到,偶然间发现面试还问这个,特地整理一下简单来说,ArrayList是一个长度可以自动增长的Array其实上面一句话就道尽了两者最核心的区别(1)长度:Array长度固定,ArrayList可以动态扩容(2)效率:效率上Array>ArrayList,原因自然在于ArrayList动态扩容造成了效率损耗两者之间的转换也非常简单:(1)Array转Arr...原创 2018-09-24 09:58:19 · 1890 阅读 · 0 评论 -
抽象类与接口的区别
这道题可以说是面试中的常客了,除当前这个问题外,还有可能会问这两者应用场景的区别,这里特此记录一下。抽象类为子类生成了一个通用模板,当你希望子类中的方法有默认实现,便可以使用抽象类而接口则是抽象方法的集合,如果一个类实现了某个接口,就必须给出接口中的所有方法实现。关于二者的不同,我觉得网上有张图很不错:关于这二者的使用场景问题:1.第一点应该想到接口与类的使用场景区别,当需要多重继承的...原创 2018-09-24 09:55:59 · 135 阅读 · 0 评论 -
final,finally,finalize的区别
1、final是个修饰符,final可用于修饰变量,方法和类,要记住final的作用很简单,只需记住变量不可变,方法不可重写,类不可继承。2.finally常与try,catch语句一起用于异常处理,其结构一般为:try{.......}catch(Exception e){.......}finally{......}finally块的作用就是保证无论发生什么情况,fin...原创 2018-09-02 13:39:01 · 106 阅读 · 0 评论 -
读取不定长数组的写法
在做算法题时,我们可能会遇到接收不定长数组的情况,比如说这样的输入情况: 7 8 1 9 3 4 即数据按一行来输入,中间以空格分割。 对于这样的输入数据,java可以这样来处理public static void main(String[] args) { Scanner in = new Scanner(System.in); String str...原创 2018-09-01 11:38:18 · 1502 阅读 · 0 评论 -
java读取properties配置文件
public static void init() { properties = new Properties(); try{ //获取classes路径下文件的路径 InputStream inputStream = MailConfig.class.getClassLoader().getResourceA...原创 2018-08-27 22:56:54 · 123 阅读 · 0 评论 -
maven install jar包的方法
最近在用jacob的时候出现了在pom文件配置但依旧找不到的错误,没办法,想着自己添加吧,结果程序打包又报错了组里的大佬给了我解决方案,利用maven install jar包即可解决 第一行这么写是因为我本机没配置maven的环境变量,有环境变量直接用第2行就行了set path=%path%;D:\maven3.2.1\bin;mvn install:install-file...原创 2018-08-27 22:54:28 · 2626 阅读 · 0 评论 -
归并排序
归并简单来理解就是划分到底(一个元素),再一层层向上合并,最终形成有序数组/** * 归并 * * @param array * @param low * @param mid * @param high */public static void merge(int[] array,int low, int mid,int high){ int[] tmp = new ...原创 2018-08-27 22:50:41 · 96 阅读 · 0 评论 -
Jsoup实现模拟登陆
之前写爬虫都是用的python,公司电脑上没有python环境,没办法,只好学习了一下java版,于是发现了一个很好用的工具Jsoup,个人感觉用法上和python的beautifulsoup有些相似。 目标是实现网站的模拟登陆,在网上发现了一个挺不错的板子,特此记录学习 挺好的一个板子,学习了import java.io.IOException;import jav...原创 2018-08-18 11:45:08 · 3597 阅读 · 2 评论 -
java代理模式
java代理java代理共分3类:静态代理,动态代理,子类代理1.静态代理:接口类 MyRequest:public interface MyRequest { public void request();}目标类:public class GoalRequest implements MyRequest{ public void reques...原创 2018-08-18 11:34:39 · 91 阅读 · 0 评论 -
java中关于字符串比较的写法
java中关于字符串比较的写法写这篇博客的原因是因为最近工作中又踩坑了,为了让自己记得更清楚些,特地整理了一番来警示自己。1.==(别这么搞,除非不想干了)众所周知,在java中对于引用类型而言,==比较的是两个对象的地址 String str1 = "xyz"; String str2 = "xyz"; String str3 = new String("xyz"); Syste...原创 2019-09-01 17:41:04 · 353 阅读 · 0 评论