
Java
人生就这样
你以为我在第二层,其实我在负一层!
所以你以为的,只是你以为的。
展开
-
Arrays.asList()你不知道的知识点
Arrays.asList()你不知道的知识点 Arrays.asList():返回指定数组支持的固定大小列表 一、Arrays.asList()的用法 相信绝大部分的人,应该都是用个这种方法吧数组转换成List集合的 那你知不知道,其实不是所有数据类型的数组都可以使用Arrays.asList(),转换成List? public static <T> List<T> asList(T... a) { return new ArrayList<>原创 2020-07-12 12:39:45 · 345 阅读 · 0 评论 -
StringBuffer与StringBuilder
StringBuffer与StringBuilder StringBuffer与StringBuilder 一、相关概念 二、StringBuffer 三、String、StringBuffer、StringBuilder效率对比 一、相关概念 StringBuffer: 1.线程安全 在所有方法上都加了同步锁(synchronized) 效率低 2.可变序列 3.JDK1.0 4.char[] value 底层实现 不没有加final修饰,说明是可变 5.与StringBuilder继承了同一个父类A原创 2020-07-12 12:38:48 · 235 阅读 · 0 评论 -
String必知必会
String必知必会 String类型 一、相关概率 二、String字面量和new String()的区别 三、字符串常量拼接 四、字符串常量+字符串变量、字符串变量之间的拼接 五、String常用的方法 一、相关概率 String声明为final,不可被继承 String实现了Serializable接口 表示字符串是支持序列化。 String实现了Comparable接口 表示String可以进行比较大小 String内部定义了final char[] value用于存储字符串数据 Strin原创 2020-07-12 12:37:39 · 319 阅读 · 0 评论 -
synchronized与(ReentrantLock)Lock的对比区别
类别 synchronized Lock 存在层次 Java关键字,属于原生语法层面需要jvm实现 而Lock它是JDK 1.5之后提供的API层面的互斥锁,需要lock()和unlock()方法配合try/finally语句块来完成 锁的释放 1.以获取锁的线程执行完同步代码块,释放锁 2.线程执行发生异常,jvm会让线程释放...原创 2020-06-29 07:58:40 · 1019 阅读 · 0 评论 -
Java多线程基础知识
Java创建多线程的两种基本方式 1.编写多线程类继承Thread类 public class ThreadTest extends Thread{ public ThreadTest(String name) { super(name); } @Override public void run() { } } public static void main(String[] args) throws Interrup...原创 2020-06-27 15:00:31 · 233 阅读 · 0 评论 -
Arrays.sort与Arrays.parallelSort区别
概述 我们都使用过 Arrays.sort() 对对象或原始数据类型数组(byte,short,int,long,char,float,double和boolean)进行排序。在 JDK 8 中,创造者增强了 API 以提供一种新方法:Arrays.parallelSort()。 在文章中,我们将对 sort() 和 parallelSort() 方法进行比较。 Arrays.sort() Arrays.sort() 方法对对象或原始数据类型的数组进行排序。此方法中使用的排序算法是 Du...转载 2020-06-07 15:40:17 · 3871 阅读 · 1 评论 -
HashMap底层的基本介绍 面试题(面试必问)
HashMap [JDK1.7之前HashMap的实现](). JDK1.8之后HashMap的实现原创 2020-06-06 17:25:52 · 242 阅读 · 0 评论 -
java冒泡排序
原理:比较两个相邻的元素,将值大的元素交换至右端。 public static void main(String[] args) { int[] arr ={5,1,2,4,8,4,10,9}; for (int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){原创 2020-06-06 12:28:10 · 136 阅读 · 0 评论 -
java二分查找(折半查找)
二分查找又称折半查找 适用场景:顺序存储结构且按有序排列 public static void main(String[] args) { int[] array ={1,2,3,4,6,7,8,9,10}; int head=0; //记录头的值 int end=array.length-1; //记录尾的值 int num=8; //需要查找的值 while (head<=end){ i原创 2020-06-06 09:39:59 · 213 阅读 · 0 评论 -
for 一到100以内的质数
质数的定义:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数 //当i取余j 等于0时 可能是质数 所以需要判断 j等不等于i 因为j如果等i的话 就说明j取余是他本身的值 public static void main(String[] args) { int i, j; for (i = 2; i <= 100; i++) { for (j = 2; j < i; j++) { ..原创 2020-06-05 13:23:46 · 2079 阅读 · 1 评论 -
设计模式之单例模式(懒汉式和饿汉式) 完整版
Singleton:在Java中指的是单例设计模式 他是软件开发中最常用的设计模式之一 单:唯一 例:实例 单例设计模式 既某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式 要点: 1.某个类只能有一个实例 构造器私有 2.它必须自行创建这个实例 含有一个该类的静态变量来保存这个唯一的实例 3.它必须自行向整个系统提供这个实例 1.直接暴露 2.用静态变量的get方法来获取 常见的单例...原创 2020-06-04 17:59:58 · 1369 阅读 · 2 评论 -
i++与++i的区别 面试题
自增和自减 其实就是操作局部变量表和数栈 举个例子: public static void main(String[] args) { int i=1; i = i++; int j=i++; int k=i+ ++i * i++; System.out.println("i="+i); System.out.println("j="+j); System.out.println("k="+原创 2020-06-04 09:26:23 · 317 阅读 · 0 评论