随笔分类 -  Java

摘要:排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序。如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 一、插入排序 (一)、直接插入排序 public class Sort { public static void main(String[ 阅读全文
posted @ 2022-02-05 18:50 zeroingToOne 阅读(150) 评论(0) 推荐(0)
摘要:一、顺序查找 public int sequenceSearch(int[] a, int value){ for(int i = 0; i < a.length; i++){ if(a[i] == value) return i; } return -1; } 二、二分查找 要求:元素必须是有序的 阅读全文
posted @ 2022-02-05 17:46 zeroingToOne 阅读(107) 评论(0) 推荐(0)
摘要:一、ThreadLocal解决什么问题ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。即同一个ThreadLocal的对象(对ThreadLocal< String >而言即为 String 类型变量),在不同的Thread中有不同的副本note:(1) 阅读全文
posted @ 2022-02-05 12:31 zeroingToOne 阅读(196) 评论(0) 推荐(0)
摘要:线程安全:就是当多线程访问时,采用了加锁的机制;即当一个线程访问该类的某个数据时,会对这个数据进行保护,其他线程不能对其访问,直到该线程读取完之后,其他线程才可以使用。防止出现数据不一致或者数据被污染的情况。线程不安全:就是不提供数据访问时的数据保护,多个线程能够同时操作某个数据,从而出现数据不一致 阅读全文
posted @ 2022-02-05 12:29 zeroingToOne 阅读(2867) 评论(0) 推荐(0)
摘要:Throwable 类是Java语言中所有错误或异常的超类。它的两个子类是Error和Exception(错误和异常) 图来自这里 Error:error类包括一些严重的程序不能处理的系统错误类(系统错误或者资源错误),是不可控制的,如内存溢出、虚拟机错误、栈溢出等。这类错误一般与硬件有关,与程序本 阅读全文
posted @ 2022-02-05 12:26 zeroingToOne 阅读(790) 评论(0) 推荐(0)
摘要:1. 同步,多个线程通过synchronized关键字实现线程间的通信。(个人理解:使用synchronized和第3种方法使用wait/notify是同一种方式) 例子:子线程循环3次,接着主线程循环5次,接着又回到子线程循环3次,接着在回到主线程循环5次,如此循环4次 代码实现: public 阅读全文
posted @ 2022-02-05 12:23 zeroingToOne 阅读(2380) 评论(0) 推荐(0)
摘要:(一)、B-Tree(平衡多路查找树) B-Tree是为磁盘等外存储设备设计的一种平衡查找树。系统从磁盘读取数据到内存时是以磁盘块(block)为基本单位的,位于同一个磁盘块中的数据会被一次性读取出来,而不是需要什么取什么。InnoDB存储引擎中有页(Page)的概念,页是其磁盘管理的最小单位。In 阅读全文
posted @ 2022-02-05 12:08 zeroingToOne 阅读(179) 评论(0) 推荐(0)
摘要:总结一下list和map遍历的几种方式 一、遍历list的几种方法实现 1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 import java.util.function.Co 阅读全文
posted @ 2022-02-05 12:00 zeroingToOne 阅读(759) 评论(0) 推荐(0)
摘要:一、初始化list的三种方法 import java.util.stream.Collectors; public static void initList() { //方法一:构造 List 后使用 List.add 初始化 List<String> list1 = new ArrayList<S 阅读全文
posted @ 2022-02-05 11:58 zeroingToOne 阅读(19074) 评论(0) 推荐(0)
摘要:一、获取/设置线程名称 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 setThreadName1(); 5 setThreadName2(); 6 setThreadName3(); 7 get 阅读全文
posted @ 2022-02-05 11:56 zeroingToOne 阅读(3820) 评论(0) 推荐(0)
摘要:对于简单类型变量,是无法直接获得变量类型的;//要想获取,必须自定义函数进行返回 对于包装类型变量,是可以直接获得的,变量名称.getClass().getName(); java中获取变量的类型可以使用每个类型的getClass()方法来获得,示例如下: 1 class Test { 2 publ 阅读全文
posted @ 2022-02-05 11:54 zeroingToOne 阅读(2557) 评论(0) 推荐(0)
摘要:通过Arrays类的静态sort()方法可以实现对数组的排序。sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。 1 class Test { 2 public static void main(String[] args) { 3 int arr[] = new int[]{3, 阅读全文
posted @ 2022-02-05 11:53 zeroingToOne 阅读(960) 评论(0) 推荐(0)
摘要:一、基础类型间的转换 1 public class TransferTest { 2 public static void main(String[] args) { 3 4 //String转为int: 两种方法 5 String str = "100"; 6 int a1 = Integer.v 阅读全文
posted @ 2022-02-05 11:51 zeroingToOne 阅读(205) 评论(0) 推荐(0)
摘要:基本类型有默认值,而包装类型初始为null。 什么时候使用基础类型,什么时候使用包装类型:在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型。 Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 1、整数:包括int、 阅读全文
posted @ 2022-02-05 10:54 zeroingToOne 阅读(126) 评论(0) 推荐(0)
摘要:问题 idea在push代码时,报错could not read from remote repository 解决方案 Preferences --> Version Control --> Git,将Built-in 改为 Native 参考 https://stackoverflow.com/ 阅读全文
posted @ 2022-02-04 23:33 zeroingToOne 阅读(367) 评论(0) 推荐(0)
摘要:1. 同步方法用synchronized关键字修饰方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 2. 同步代码块用synchronized关键字修饰语句块。被该关键字修饰的语句块会自动被加上内置锁,从 阅读全文
posted @ 2019-08-31 22:07 zeroingToOne 阅读(19873) 评论(2) 推荐(1)
摘要:线程安全 非线程安全 Collection Vector ArrayList、LinkedList HashSet、TreeSet Map HashTable HashMap、TreeMap 字符串 StringBuffer StringBuilder 线程安全 非线程安全 Collection V 阅读全文
posted @ 2018-11-29 15:36 zeroingToOne 阅读(4671) 评论(0) 推荐(1)
摘要:转自:https://www.cnblogs.com/dolphin0520/p/3681042.html hashCode方法在Object类中: 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。1. hashCode的作用当向集 阅读全文
posted @ 2018-11-29 15:33 zeroingToOne 阅读(424) 评论(0) 推荐(0)
摘要:JDK1.8中JVM把String常量池移入了堆中,同时取消了“永久代”,改用元空间代替(Metaspace)java中对String对象特殊对待,所以在heap区域分成了两块,一块是字符串常量池(String constant pool),用于存储java字符串常量对象,另一块用于存储普通对象及字 阅读全文
posted @ 2018-11-29 15:03 zeroingToOne 阅读(8121) 评论(1) 推荐(3)
摘要:一、String、StringBuffer、StringBuilder区别 1.可变与不可变(1). String类中使用字符数组保存字符串,因为有“final”修饰符,所以string对象是不可变的。 (2). StringBuilder与StringBuffer都继承自AbstractStrin 阅读全文
posted @ 2018-11-29 15:02 zeroingToOne 阅读(416) 评论(0) 推荐(0)