随笔分类 - JAVA基础
摘要:这篇文章告诉你什么是事务、数据库事务又是什么?为什么数据库需要事务?传统的文件系统事务与数据库事务有什么区别?数据库事务特性?Mysql事务特性通过什么技术手段来保障...
阅读全文
摘要:知乎摘抄的关于位运算符的操作,以一个十进制的数字分析开始较形象的阐述了位左移右移的操作
阅读全文
摘要:总体解释:DML(data manipulation language): 它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言DDL(data definition language): DDL比DML要多,主要的命令有CR
阅读全文
摘要:Spring Boot 自动配置之@Conditional的使用
阅读全文
摘要:classpath的诠释
阅读全文
摘要:printStackTrace 打印的是调用栈的轨迹 。调用栈显示了“把你带到异常的地点" 支持选择要输出的流。
它打印的是 方法调用的源头上下文
fillInStackTrace:用于在throwable内部记录栈针状态
阅读全文
摘要:浅拷贝:被拷贝对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。
比如举个例子,一个类A中有另外一个类B类型的变量。在A重写clone函数调用super.clone的时候,创建的新对象和原来对象中的类B类型的变量是同一个,他们指向了同一个B的类型变量。如果在A中对B的变量做了修改,在新的拷贝出来的对象中B的变量也会被同样的修改。
请记住,直接调用super.clone实现的clone方法全部都是浅拷贝。
(三)深拷贝
深拷贝:被拷贝对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。
通俗的说,如果说浅拷贝,开始的时候是两条线,如果在最后有一个其他类的变量,那么这两条线最后会合二为一,共同指向这变量,都能对他进行操作。深拷贝则是完完全全的两条线,互不干涉,因为他已经把所有的内部中的变量的对象全都复制一遍了
阅读全文
摘要:最近笔者遇到一个问题 枚举值是1 发现不同类型的两这种写法居然成立,且结果为true 于是查了很多资料 ,发现官方API 有这种说法: If the operands of an equality operator are both of numeric type, or one is of num
阅读全文
摘要:那些AOP术语 初看这么多术语,一下子都不好接受,慢慢来,很快就会搞懂。通知、增强处理(Advice) 就是你想要的功能,也就是上说的安全、事物、日志等。你给先定义好,然后再想用的地方用一下。包含Aspect的一段处理代码 连接点(JoinPoint) 这个就更好解释了,就是spring允许你是通知
阅读全文
摘要:其实要学好任何一门语言 编程范式至关重要,理解几个维度的方面如
出错处理是怎么玩的?内存管理是怎么玩的?数据封装和扩展怎么玩的?多态和泛型怎么搞的?运行时识别和反射机制是怎么玩的?并发编程怎样玩?……
下面分析一下多态这个特性:
阅读全文
摘要:/*简易版的HASHMAP包括基本的GET PUT思想
* 从数组头部开始线性通过key比较效率低;具有固定尺寸不灵活
*/
这个版本get取值按照线性思维逐个遍历数组元素比较 比较耗时,而且初始化容器具有固定尺寸也不够灵活
阅读全文
摘要:linkedhashmap中关于LRU算法的实现
阅读全文
摘要:如何避免MAVEN项目JAR包冲突;解析MAVEN仲裁机制及SPRINGBOOT的实现
阅读全文
摘要:this指这个对象或当前对象;本身它还可以表示对当前对象的引用
阅读全文
摘要:客户端禁止访问其他外围类的private innerClass类 编译器会提示类对象访问受限
阅读全文
摘要:使用.this,.new
.this 表达的是在内部类对象域内 通过外部类.this 指向了一个在内部类指向外围类对象引用的关系。只有这样可以访问外围类对象的属性与方法
.new表达的是与.this方向相反 当在外围类作用域上 想创建内部类对象 之前通用的做法是 在外围类创建一个指向内部类的引用来创建内部类,但有一种更加快捷的方式
直接外围类.new 就可以表达一个外围类对象引用 。这里必须强调一点 在拥有外部类对象之前是不可能创建外围类对象的,因为内部类对象会暗暗的连接到创建他的外围类对象上
阅读全文
摘要:可以将一个类的定义放在另一个类的内部 这就是内部类。--摘自java编程思想
内部类的出现可以使一些逻辑相关的对象组合在一起,使整个关系更加立体 整体代码更加优雅。而且内部类可以与外部类进行通信即内部类与外部类建立联系之后,可以访问外部类的属性
阅读全文
摘要:代理是基本的设计模式之一,它为你提供额外的或不同的操作而插入的用来代替实际对象的对象。这些对象通常涉及到与实际对象的通信,因此代理通常充当中间人的角色。
静态代理和动态代理的一个显著区别:
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理:动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。
阅读全文