![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
北岭山下
爱编程&&爱电子&&爱骑车
展开
-
常用的字符串拼接方式性能分析以及源码分析
性能测试在日常开发中,常用的字符串拼接主要有String +、String.concat、StringBuffer.append以及StringBuilder.append等四种。接下来我们测试一下这四种方式的性能到底哪个强。背景:对字符串进行5000次的拼接操作。运行环境:CPU:2.4 GHz 四核Intel Core i5内存:16G系统:macOS 10.15.5jdk:1.8.0_211测试工具:junitPerf1.String + //String + @原创 2020-07-12 15:42:09 · 307 阅读 · 0 评论 -
反编译工具cfr关于StringBuilder反编译的相关问题
问题:想对String的“+”进行分析,但使用cfr反编译String的“+”操作反编译失败,废话不说,直接上代码。源码:public class Demo { public static void main(String[] args) { String a = "123"; String b = a + "456"; System.out.println("b:"+b); }}反编译后的代码:java -jar cfr-0.150.j原创 2020-07-11 17:01:03 · 482 阅读 · 0 评论 -
Math类的常用方法
Math类为我们提供了常用的数学运算操作,如三角函数,开方平方,绝对值等等。@Test public void Test1() { //三角函数和角度问题 System.out.println("sin(π/2):"+Math.sin(Math.PI / 2)); System.out.println("sin(90°):"+Math.signum(90)); ...原创 2018-03-06 18:53:14 · 3172 阅读 · 0 评论 -
线程池的种类和例子
线程池线程池作用就是限制系统中执行线程的数量。 线程池的作用1.减少创建和销毁线程的次数,每个工作线程可以重复利用2.可以调整线程池中工作线程的数量,减少系统的资源消耗;四种创建线程池的方法newCachedThreadPool :创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。ExecutorService c...原创 2018-03-06 23:04:33 · 520 阅读 · 0 评论 -
equals与==的区别?
equals和==的区别在面试中经常遇到,在此做一个总结==:是比较引用地址值是否相同,如果相同返回true,不相同返回false。 equals:是Object中的方法,如果子类没有覆盖,则比较的仍是引用地址值。public boolean equals(Object obj) { return (this == obj); }通常境况下,我们编写的...原创 2018-03-19 15:34:41 · 222 阅读 · 0 评论 -
【源码分析】HashMap和HashTable的区别
HashMap和HashTable1.继承父类不同 Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类。但二者都实现了Map接口。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, S...原创 2018-03-06 11:46:27 · 137 阅读 · 0 评论 -
HashMap的缺点
大家都知道,HashMap通过计算hash值实现快速查找的的功能,所以查找效率特别高。但是有又多少人知道HashMap的缺点呢? 说HashMap线程不安全的,多线程中使用HashMap会出现线程安全问题,这确实是缺点之一,但是这次讲的是另外两种极端,这也是我面试过程中面试官提到的问题,特此在这里记录。 1. 每次计算hash值都是同一个值 我们知道,HashMap底层是通过数组和链表的数据...原创 2018-03-19 16:13:52 · 5324 阅读 · 3 评论 -
【Flick API】获取Flickr图片信息及实例说明--Java版
背景近期GF写论文需要爬取Flickr网站上的某个关键词的所有图片信息,并且生成excel用于数据分析。在找了许多资料之后,实现了该功能,其实难度并不大,在Flickr官方API文档中写的也挺详细的,而且还有官方Flickr4JavaDemo,只是过程中容易遇到了一些坑,特此记下,方便后人。实现功能搜索某关键字,获取到Flickr中匹配到该关键字的图片,并获取其中的包括图片ID,用户信息,图...原创 2019-01-24 12:19:44 · 2907 阅读 · 9 评论 -
关于Arrays.asList的注意事项以及源码解析
文章目录1.禁止使用Arrays.asList 返回的List进行add/remove/clear操作2.基本数据类型作为asList参数注意事项3.返回真正ArrayList的正确方式1.禁止使用Arrays.asList 返回的List进行add/remove/clear操作 /** * 1.remove/add/clear * Arrays的内部类并没有实现Li...原创 2019-07-06 00:38:23 · 187 阅读 · 0 评论 -
【Java学习笔记】GC
java垃圾回收机制在Java中,开发人员无法直接在程序代码中清理内存,而是由垃圾回收器自动寻找不必要的垃圾对象,并且清理掉他们 主要明白三件事 1. 那些内存需要回收? 2. 什么时候回收? 3. 如何回收?哪些内存需要回收? 不可能再被任何途径使用的对象判断依据? 1. 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用...原创 2018-01-12 21:08:12 · 205 阅读 · 0 评论 -
【Java学习笔记】多线程
多线程线程与进程概念进程(process):是正在计算机中执行的程序。 线程(thread): 是进程中的某个单一的顺序的控制流。 注: 进程是应用程序的运行实例,自己享用独立的地址空间。线程是进程的细化,他是进程的实体。 进程是系统进行资源分配和调度的最小单位。线程是CPU调度和分派的最小单位。区别 从一个进程转换到另一个进程 ...原创 2018-01-12 21:01:07 · 178 阅读 · 0 评论 -
【Java】中文乱码探究
首先要明确,中文出现乱码的原因是编码和解码不一致导致的。中文乱码出现的情景字节与字符I/OJavaWeb数据库字节与字符 /** * 编码方式和解码方式不一致导致乱码 * @throws UnsupportedEncodingException */ @Test public void stringCharSetTest() throws Un原创 2018-01-18 16:46:55 · 229 阅读 · 0 评论 -
【Java】关于文件路径问题总结
虽然文件路径在项目中不是经常的用到,用到的时候却不能灵活的使用,故在此总结。绝对路径和相对路径绝对路径:绝对路径是指文件在硬盘上真正存在的路径。 相对路径:相对于当前用户目录的相对路径获取当前路径的方法System.getProperty(“user.dir”)函数获取当前路径 //获取当前用户的路径 String path = System.g原创 2018-01-18 14:58:15 · 4653 阅读 · 0 评论 -
【Java学习笔记】异常
异常(1)定义运行时发生的不正常现象,其实异常就是java通过面对对象的思想将问题封装成对象,有异常类对其进行描述。不同的问题进行不同的描述。 Java异常处理机制:当程序出现异常时,一个异常对象就会产生,并将其交给运行时系统来找寻相应的代码处理异常,从而确保不会对系统造成伤害。 异常有两种: 一种是运行时系统自己产生的异常(系统自己已经定义的异常,如数组角标溢出); 另外一种原创 2018-01-12 21:01:59 · 183 阅读 · 0 评论 -
【Java学习笔记】JVM内存模型
JVM内存模型++共享内存模型来实现多线程之间的信息交换和数据同步的。++方法区和堆属于线程共享内存区,虚拟机栈,本地方法栈和程序计数器数据线程私有内存区。程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。为了线程切换后能恢复到正确的执行位置,每个线程都需要有一个独立的程序...原创 2018-01-12 21:10:30 · 168 阅读 · 0 评论 -
【Java学习笔记】集合
集合集合(Collection):一种能够存储多个对象且长度可变的容器数组与集合的区别:数组是固定长度的,集合的长度可变数组存储的基本数据类型,集合存储的是引用数据类型数组不存在“键值对”,Set集合有一一对应的关系集合框架 集合类型 集合子类 集合实现类 Collection(单列集合) List(唯一具有增删改查)(有序,可...原创 2018-01-12 21:03:33 · 234 阅读 · 0 评论 -
【Java学习笔记】JDBC
JDBC学习笔记重编(1)概念Java Database Connectivity(java 数据库连接)sun公司定义的一套访问数据库的规范(接口+类)。主要放在java.sql/javax.sql包中。(2)步骤加载JDBC驱动程序提供参数连接建立一个数据库的连接创建一个statement执行SQL语句处理结果关闭JDBC对象package na原创 2018-01-13 19:30:14 · 168 阅读 · 0 评论