java
文章平均质量分 51
心阳唯一
学海无涯,回头是岸
展开
-
基于EasyExcel操作Excel
介绍:Java操作excel的基本是Apace POI,原生的Apace POI用起来有些复杂,今天介绍的EasyExcel是基于Apace POI的,简化了Java端操作excel的方式。所需依赖:#所需依赖<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency> <groupId>com.alibaba</groupId> <原创 2021-07-06 16:00:54 · 279 阅读 · 0 评论 -
类加载之:可确定常量与不可确定常量
可确定常量通常意义上的常量,都是可确定常量,对于可确定常量,在类加载时满足:常量在编译阶段会存入待调用这个常量的方法所在的类的常量池中,本质上。调用类并没有直接引用到定义常量的类,因此并不会触发定义常量的类的初始化public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.str); }}class MyParent2 { public原创 2021-06-17 16:44:12 · 97 阅读 · 0 评论 -
类加载之:直接定义了静态字段的类才会初始化
直接定义了静态字段的类才会初始化对于静态字段来说,只有直接定义了该字段的类才会初始化public class MyTest1 { public static void main(String[] args) { System.out.println(MyChild1.str); }}class MyParent1 { public static String str = "hello world"; static { System原创 2021-06-15 15:47:53 · 106 阅读 · 0 评论 -
LeetCode 14. 最长公共前缀JAVA解法
原题目地址,想看原题目描述的可以点击查看:https://leetcode-cn.com/problems/longest-common-prefix/话不多说,直接上代码思路:运用String的indexOf(String str)方法来进行解题。/** * 最长公共前缀 * * @param strs 待判断最长公共前缀的字符串数组 * @return 最长的公共前缀 */ private static String longestCommonPrefix(String原创 2020-09-19 21:03:42 · 120 阅读 · 0 评论 -
LeetCode 7. 整数反转JAVA解法
原题目地址,想看原题目描述的可以点击查看:https://leetcode-cn.com/problems/reverse-integer/submissions/话不多说,直接上代码思路:运用整数/10和整数%10把入参整数分解进行反转,因为题目要求不能对于超出整数范围的反转数要进行归零,所以使用long来做结果,再进行强制转换。/** * 整数反转 * @param x 待反转的整数 * @return 反转后的结果 */private static int reverse(int原创 2020-09-19 20:24:59 · 88 阅读 · 0 评论 -
Java实现二分查找法
对于无序的数组,二分查找法是行不通的,因为二分查找法的前提条件就是:有序。代码:/*** 二分查找的实现** @param array 待查找的数组* @param searchNum 待查找的数字* @return 查找的结果,为正数的时候,表示下标,-1表示没找到*/static int binarySearchImpl(int[] array, int searchNum) { int low = 0; int high = array.length - 1; in原创 2020-08-08 18:27:31 · 113 阅读 · 0 评论 -
String与StringBuilder以及StringBuffer区别
String与StringBuilder以及StringBuffer区别String是常量,定义的语法为:String myString = "this is a String";作为常量,String定义完成后就无法修改了,而我们见到的myString = "this is a new String";并不是修改了其原来的值,而是新建了一个字符串指向了原来的内存地址,而之前的字符串因为没有了指向,所以会被GC进行回收。输出分析:String a = "aa";String b = "bb";St原创 2020-07-22 21:49:06 · 137 阅读 · 0 评论 -
JAVA8方法引用
JDK8中引入了一种新的特性—方法引用(Method Reference),方法引用是Lambda的一种特例化形式,当Lambda表达式的主体部分只有一句,并且有一个特定的方法已经存在,那么可以使用方法引用来代替展示。方法引用实际上是Lambda表达式的一种语法糖,所谓语法糖,就是并没有增加新的内容,只不过用一种更加简洁的形式来表现。方法引用的分类:类名::静态方法名引用名(对象名)...原创 2019-10-27 21:30:42 · 281 阅读 · 2 评论 -
解析AtomicInteger为什么能保证原子性
文章浅谈volatile的最后留下了疑问,为什么AtomicInteger能保证原子性,AtomicInteger是如何做到保证原子性的,本篇文章就是来答疑解惑的。AtomicInteger源码分析private static final Unsafe unsafe = Unsafe.getUnsafe();public final int getAndIncrement() { ...原创 2019-10-26 23:52:12 · 2070 阅读 · 2 评论 -
JAVA8函数式接口
JAVA8已经出来很久了,但是对于新特性,本人始终没有深入了解,但是浪子回头不晚, 本人把学习的内容记录下,谨当笔记。在Java8之前,函数不是Java中的一等公民,但是在Java8中函数翻身做主人了,成为了一等公民。然而在将函数作为一等公民的语言中,如:JavaScript,Python中,lambda表达式的类型是函数,但在Java中,lambda表达式的类型是对象,其必须依附于一类特殊的...原创 2019-10-23 22:38:02 · 397 阅读 · 0 评论 -
JAVA8中lambda表达式
JDK8中引入了Lambda表达式,为什么要添加Lambda表达式,作用或者好处是什么,什么是Lambda表达式呢?本篇文章是接着前篇文章来的,JAVA8函数式接口。为何需要Lambda表达式:在Java中,我们无法将函数作为参数传递给一个方法,也无法声明一个返回函数的方法,但是这些用法在函数式编程语言中非常常见,如:JavaScript。而Lambda表达式的出现,为Java填补了这块空白。...原创 2019-10-24 21:03:11 · 156 阅读 · 0 评论 -
浅谈volatile
多线程操作变量过程由于JVM运行程序的实体是线程,而每个线程创建时JVM都会为其创建一个工作内存(或者栈空间),工作内存是每个线程的私有数据区域,而Java内存模型中规定所有变量都存储在主内存(物理内存),主内存是共享内存区域,所有线程都可以访问,但线程对变量的操作(读写等)必须在工作内存中进行,首先要将变量从主内存拷贝到自己的工作内存中,然后对变量进行操作,操作完成后把变量写回主内存,不能直接...原创 2019-10-26 17:56:12 · 238 阅读 · 0 评论