摘要:一、引言 日常复习总结,发现太久不看基础,很多概念的东西还是给忘了,本文将教你如何快速区分“字符”与“字符集”。 二、基础知识 2.1 字符 各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 也就是说,它是一个信息单位,一个数字是一个字符,一个文字是一个字符,一个标点符号也是一个字
阅读全文
摘要:一、问题描述 话不多说,先上代码: 知道快速失败机制的可能都会说,不能在foreach循环里用集合直接删除,应该使用iterator的remove()方法,否则会报错:java.util.ConcurrentModificationException 但是这个代码的真实输出结果却是: 并没有报错,这
阅读全文
摘要:【CAS机制】 指的是CompareAndSwap或CompareAndSet,是一个原子操作,实现此机制的原子类记录着当前值的在内存中存储的偏移地址,将内存中的真实值V与旧的预期值A做比较,如果不一致则说明内存中的值被其他线程修改过了,返回false,否则将新值B存入内存。 Java内部是使用本地
阅读全文
摘要:一、引子 在各种教科书和博客中这三者经常被引用,今天复习到内存区域,想起常量池中就是存着字面量和符号引用,其实这三者并不是只在java中才有,各个语言中都有类似的定义,所以做一下总结,以示区分。 二、例子 先举一个简单的例子,就很容易看懂接下来的定义了。 三、各定义以及区分 3.1 变量 有些数据在
阅读全文
摘要:一、引言 复习javac的编译过程中的解语法糖的时候看见了泛型擦除中的举例,网上的资料大多比较散各针对性不一,在此做出自己的一些详细且易懂的总结。 二、泛型简介 泛型是JDK 1.5的一项新特性,一种编译器使用的范式,语法糖的一种,能保证类型安全。【注意:继承中,子类泛型数必须不少于父类泛型数】 为
阅读全文
摘要:复习SSM框架,太久没用自己手动撘一个,发现自己还是有很多地方忘记了和没注意的事项。。。 首先,直接给出总流程: 零、引jar包 1、引包(或者写maven.pom) 一、数据库部分 设计数据库各表结构,主键、外键等 二、Model部分 1、根据表结构写相对应的bean(*.java) 2、配置my
阅读全文
摘要:大家都知道AOP使用了代理模式,本文主要介绍两个代理模式怎么设置以及区别,对原文一些内容进行了引用后加入了自己的理解和更深入的阐述: 一、JDK代理和CGLIB代理的底层实现区别* JDK代理只能针对实现了接口的类以反射的方式生成代理,而不能针对类 ,所以也叫“接口代理”* CGLIB是针对类实现代
阅读全文
摘要:底层 有序否 键值对能否为Null 遍历 线程安全 哈希Code Hashmap 数组+链表 无序 都可null iterator 不安全 内部hash方法 Hashtable 数组+链表 无序 都不可null Enumeration(iterator) 安全 Key自己的 TreeMap 红黑树
阅读全文
摘要:今天回顾hashmap源码的时候发现一个很有意思的地方,那就是jdk1.8在hashmap扩容上面的优化。 首先大家可能都知道,1.8比1.7多出了一个红黑树化的操作,当然在扩容的时候也要对红黑树进行重排,然而今天要说的并不是这个,而是针对数组中的链表项的处理优化。 关于hashmap的源码都十分精
阅读全文
摘要:结构体大小的计算,。网上说法一大堆还都不一样分什么对齐不对齐,偏移量什么的。。 在此稍微举例简单总结下: 对齐原则:每一成员的结束偏移量需对齐为后一成员类型的倍数 补齐原则:最终大小补齐为成员中最大值的倍数 拿个题目做例子:【(开始偏移量)+此处字节 = 结束偏移量】 1 struct MyStru
阅读全文