随笔分类 - JAVA基础知识学习
摘要:Annotations : 如下的Cat和Dog是两个绑定注解。 Output :
阅读全文
摘要:注解@Retention可以用来修饰注解,是注解的注解,称为元注解。Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 R
阅读全文
摘要:StampedLock是Java8引入的一种新的所机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之间依然是冲突的,读锁会完全阻塞写锁,它使用的依然是悲观的锁策略.如果有大量的读线程,他也有可能引起写线程的饥饿 而Stamped
阅读全文
摘要:HashMap size 陷阱: 错误写法: 正确写法:(考虑当添加的元素数量达到HashMap容量的75%时将出现resize. ) 对List的误用: 不用一律用List,如下场景使用Array更适合: list长度固定。 对list遍历频繁。 需要对数字进行包装(JDK没有提供基本类型的Lis
阅读全文
摘要:一 异常分检测异常和非检测异常,异常的应用情景可以概括为以下: 调用代码不能继续执行,需要立即终止。出现这种情况的可能性太多太多,例如服务器连接不上、参数不正确等。这些时候都适用非检测异常,不需要调用代码的显式捕捉和处理,而且代码简洁明了。 调用代码需要进一步处理和恢复。假如将 SQLExcepti
阅读全文
摘要:1: Java7 以后的 NIO. 2: 泛型要掌握,这里重点强调一点,泛型类之间不存在继承关系,所有的泛型对象在编译后都会去泛型化,都是同一个 class 对象,例如 ArrayList<Objcet>不是 ArrayList<String>的父类,在内存中对应同一个 class。还有在 Java
阅读全文
摘要:Java 内存分配策略 静态存储区(方法区):主要存放静态数据、全局 static 数据和常量。这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在。 栈区 :当方法被执行时,方法体内的局部变量(其中包括基础数据类型、对象的引用)都在栈上创建,并在方法执行结束时这些局部变量所持有的内存将会
阅读全文
摘要:1: Unchecked Exception( 也就是运行时异常) VS Check Exception(非运行时异常) 2: 运行期异常 VS 非运行期异常? 非运行时异常: 必须在代码中显示的声明捕获也就是放在try{}catch(){}块中,或者在方法上申明throws 来抛出异常,类型上都属
阅读全文
摘要:1) 设置-Xms、-Xmx相等; 2) 设置NewSize、MaxNewSize相等; 3) 设置Heap size, PermGen space: Tomcat 的配置示例:修改%TOMCAT_HOME%/bin/catalina.bat or catalina.sh 在“echo "Using
阅读全文
摘要:内存泄露(memory leak) VS 内存溢出(out of memory) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory; 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间(指的是堆上的内
阅读全文
摘要:四:JVM垃圾回收?几种策略? cocurrent GC ? 六:IOC如何实现?工厂模式。 七:Spring初始化时如何根据XML初始化bean的? 以什么形式存储bean。 初始化生成MAP, map的key是什么?value是什么?
阅读全文
摘要:一: String s = new String("ABC") VS String s = "abc" String s = "abc" // 字符串字面量 String s = new String("abc"); 这个会无条件的在堆中创建一个新对象。 下面看字符串字面量。 首先,记住重要的一点是
阅读全文
摘要:ArrayList:动态扩容(相对于数组),数组实现查询非常快但要求连续内存空间。 双向队列LinkedList:不需要像ArrayList一样创建连续的内存空间,它以链表的形式连接各个节点,但是查询搜索效率极低。 HashMap存放键值对:内部使用数组加链表实现,检索快但是由于键是按照Hash值存
阅读全文
摘要:有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特殊符号及编码 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特殊符号及编码 有些符号在URL中是不能直接传递
阅读全文
摘要:草根时期,快速开发网站并上线。当然,通常只是先试水,用户规模也没有形成,经济能力和投入也非常有限。 有一定的业务量和用户规模了,想提升网站速度,于是,缓存出场了。 市场反响还不错,用户量每天在增长,数据库疯狂读写,逐渐发现一台服务器快撑不住了。于是,决定把DB和APP做分离。 单台数据库也感觉快撑不
阅读全文
摘要:一: 不要直接new一个thread,应当使用线程池。使用线程池的时候应当对线程数量大小合理设置,一般最大不超过50个,当然还需要考虑你的IO和CPU,怎么分析网上搜搜吧。 二:容器类变量,如果变化比较大且频繁,尽量定义的时候设置初始容量大小,减少扩容带来的消耗。 三:分支判断if…else的时候,
阅读全文
摘要:阿里巴巴编码规范学习。 待续 ava有自己对包名、类名、方法名等的命名规范。这个时候要尝试按照规范写代码,同时甩掉以前写代码时养成的不良习惯
阅读全文
摘要:1: 直接将web项目文件件拷贝到webapps 目录中,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用,所以可以将JSP程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有
阅读全文
摘要:1: 接口,抽象类,类三者之间的关系: (1)接口是一种规范,告诉外界这个东西可以做什么。可以继承多个接口 (2)抽象类是一种模板,告诉外界这个东西的一部分公共功能。只能继承一个抽象类。 (3)类与上述的最大区别是可以维护状态信息。 2: java 8 新的接口特性: 首先看旧的接口的特性: (1)
阅读全文
摘要:(原文地址:https://zhuanlan.zhihu.com/p/23488863) NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处
阅读全文