随笔分类 -  java 基础

摘要:同步阻塞IO(Blocking IO):即传统的IO模型。 同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。 多路复用IO(IO Multiplexin 阅读全文
posted @ 2020-01-10 15:24 暖暖-木木 阅读(137) 评论(0) 推荐(0)
摘要:Arraylist数据结构: 数组 Object[] EMPTY_ELEMENTDATA ArrayList初始长度:10 ArrayList扩容: 数组默认长度为10,重新创建一个新的数组,并将原始数据执行Arrays.copyOf(),每次扩容1.5倍长度 ArrayList删除元素: 阅读全文
posted @ 2019-11-11 19:54 暖暖-木木 阅读(206) 评论(0) 推荐(0)
摘要:JDK1.7以前的HashMap jdk1.7中,当冲突时,在冲突的地址上生成一个链表,将冲突的元素的key,通过equals进行比较,相同即覆盖,不同则添加到链表上,此时如果链表过长,效率就会大大降低,查找和添加操作的时间复杂度都为O(n);但是在jdk1.8中如果链表长度大于8,链表就会转化为 阅读全文
posted @ 2019-10-18 17:08 暖暖-木木 阅读(211) 评论(0) 推荐(0)
摘要:存入的数据过多的时候,尤其是需要扩容的时候,在并发情况下是很容易出现问题. resize函数: 并发导致死循环: https://blog.csdn.net/z69183787/article/details/64920074?locationNum=15&fps=1 阅读全文
posted @ 2019-10-17 15:37 暖暖-木木 阅读(833) 评论(0) 推荐(0)
摘要:作为最基础的引用数据类型,Java 设计者为 String 提供了字符串常量池以提高其性能,那么字符串常量池的具体原理是什么? 字符串常量池的设计思想是什么? 字符串常量池在哪里? 如何操作字符串常量池? 字符串常量池的设计思想 字符串的分配,和其他的对象分配一样,耗费高昂的时间与空间代价,作为最基 阅读全文
posted @ 2019-08-08 19:40 暖暖-木木
摘要:package com.beike.springboot.other; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @ClassName: CommonRegex * @description: * @date: 2019/5/28 11:06 */ public class Commo... 阅读全文
posted @ 2019-05-28 11:08 暖暖-木木 阅读(630) 评论(0) 推荐(0)
摘要:1冒泡排序 比较相邻的元素,将小的放到前面,(每一轮找出数组中最大的放在后面,后面排好序的数组元素不参与下轮排序)。 下面将数组[7,8,5,1,3]里面的元素进行排序。 7 8 5 1 3 1.1: 7 8 5 1 3 7和8进行比较,因为7<8所以2个元素的位置不变1.2: 5 7 1 3 8 阅读全文
posted @ 2019-05-27 19:01 暖暖-木木 阅读(487) 评论(0) 推荐(0)
摘要:输出结果: 1 .Integer 128==128false2 .Integer 127==127true3 .Integer unbox true4 .Integer compare true 为什么会出现128==128的结果?输出结果表明i1和i2指向的是同一个对象,而i3和i4指向的是不同的 阅读全文
posted @ 2019-04-24 19:46 暖暖-木木 阅读(939) 评论(0) 推荐(0)
摘要:面向流与面向缓冲 Java NIO和IO之间第一个最大的区别是,IO是面向流的,NIO是面向缓冲区的。 Java IO面向流意味着每次从流中读一个或多个字节,直至读取所有字节,它们没有被缓存在任何地方。此外,它不能前后移动流中的数据。如果需要前后移动从流中读取的数据,需要先将它缓存到一个缓冲区。 J 阅读全文
posted @ 2018-09-13 11:43 暖暖-木木 阅读(239) 评论(0) 推荐(0)
摘要:List集合中的元素可以重复 ArrayList:数组,查询比较快 LinkedList:链表,常用于增删改效率高 Vector:线程安全,synchronized 线程安全的写法:Collections.synchronizedList(new ArrayList()) Set集合中的元素不可以重 阅读全文
posted @ 2018-09-07 17:56 暖暖-木木 阅读(135) 评论(0) 推荐(0)
摘要:HashTable: put方法加了同步锁synchronized,底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低。 底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式 阅读全文
posted @ 2018-09-07 15:57 暖暖-木木 阅读(269) 评论(0) 推荐(0)
摘要:一、背景: 线程不安全的HashMap 因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。 https://www.cnblogs.com/banjinbaijiu/p/9147434.html 效率低下的HashT 阅读全文
posted @ 2018-09-07 15:15 暖暖-木木 阅读(251) 评论(0) 推荐(0)
摘要:HashMap的存储结构是由数组和单链表共同完成。Entry<K,V>[] ,Entry是单向链表。 1 HashMap数据结构 HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCod 阅读全文
posted @ 2018-09-07 14:11 暖暖-木木 阅读(389) 评论(0) 推荐(0)
摘要:Java提供了 Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句; PreparedStatement是用于执行参数化查询 预编译statement,提高查询速度,防止sql注入。通过调用connection.preparedSta 阅读全文
posted @ 2018-08-21 14:17 暖暖-木木 阅读(374) 评论(0) 推荐(0)