一些容易忽略的Java基础题

protected 范围:本类、子类、包内

Oracle 在 DDL 前后各执行一次 COMMIT,所以慎用 truncate

Servlet 每个请求一个线程
CGI (Common Gateway Interface,公共网关接口) 每个请求一个进程

switch 实际只能 int (byte short char 因为能向上转型),long 不行
1.5+Byte Short Char Integer enum(ordinal 是 int)
1.7 String(hashCode 是 int)

Integer.parseInt 返回 int
Integer.valueOf 返回对象 -128~127 已有,和自动装箱一致
int 和 Integer 比较会变成值比较从而相等

float与0比较:
const float EP = 0.000001;
if ((x >= - EP) && (x <= EP) )

str.replaceAll(regex, repl) 是正则替换,等同Pattern.compile(regex).matcher(str).replaceAll(repl)

SQL 执行顺序:
FROM -> WHERE ->
GROUP BY -> HAVING ->
SELECT -> DISTINCT ->
TOP -> ORDER BY

扩容:
默认1<<4=16
最大1<<30
3/4=0.75
HashMap/HashSet
c=16 | if(0.75c) 2c,12时32
Hashtable
c=11 | if(0.75c) 2c+1,8时17
ArrayList
c=0, c=10 | max(1.5c+1, l)
Vector
c=10 | 2c
StringBuffer
c=16 | max(2c+2, x+l)
https://www.cnblogs.com/lq147760524/p/6713677.html

2的3次方最快方法1<<3

线程安全:
ServletContext、HttpSession
非线程安全:
ServletRequest
SimpleDateFormat

yyyy-MM-dd HH:mm:ss.S
特别注意24小时H大写
new Date(y-1900, M-1,d)

HashMap kv 均可 null
HashTable kv 均不可 null

JVM 类加载器:
BootStrapClassLoader 引导
ExtClassLoader 扩展
AppClassLoader 应用
CustomClassLoader 用户自定义
Tomcat 类加载器:
Bootstrap 引导 jre/lib/ext,
System 系统 CATALINA_HOME/bin,
Common 通用 CATALINA_HOME/lib,
webapp 应用 WEB-INF

JS全局属性:Infinity NaN undefined
全局函数:
字符转代码执行
eval()
编解码
encodeURI()decodeURI()
escape()unescape()
encodeURIComponent()
decodeURIComponent()
判属性
isFinite()isNaN()
类型转换
Number()String()
parseFloat()parseInt()

getPriority() 返回线程的优先级

TCP 状态:
客户端独有的:SYN_SENT FIN_WAIT1 FIN_WAIT2 CLOSING TIME_WAIT
服务器独有的:LISTEN SYN_RCVD CLOSE_WAIT LAST_ACK
共有的:CLOSED ESTABLISHED

Join 算法:
Nested Loop Join
Sort Merge Join
Hash Join

你可能感兴趣的:(一些容易忽略的Java基础题)