char字符型的默认值是’\u0000’
静态变量的设置必须在类主体中,而不是在方法中
编译看左边,运行看右边
json对象要求属性必须加双引号
类成员变量包含类变量和实例变量
单例模式的6钟实现以及各实现的优缺点
- 懒汉式:线程不安全
- 饿汉式:线程安全
- 懒汉式(线程安全)
- 双重检查锁实现(线程安全)
- 静态内部类实现(线程安全)
- 枚举类实现(线程安全)
字符流= 字节流+编码集,所以,所有的字节流都是可以处理Unicode字符的
没有无符号左移赋值,只有无符号右移赋值.
标识符就是在java中可以辨别的命名规则,不同于关键字
接口与抽象类的关系(1.8之后)?
- 抽象类中的抽象方法不能用private,static,synchronized,native访问修饰符修饰
- 接口是一种特殊的抽象类,接口中的方法全部都是i抽象方法,但是其前面的abstract可以省略,
String.split方法默认返回一个数组,如果没有分隔符,会把整个字符串当成一个长度为1 的字符串数组Spring可以实现声明式业务,包含了一个依赖注入的实现,也提供了aop面向切面的方式
在java中,如果输入一个小数,则系统默认的时double类型的,如果想表达其为小数,应该在该小数后面加上f
在类中,静态方法无法加载非静态的成员变量
byte属于整形变量
public class TestIncr {public static void main(String args[]) {int i = 0;i = i++ + i;System.out.println("I =" +i);}}// 结果是1,而不是编译错误
局部变量参与运算前是必须要初始化的
socket中,获取本地
ip地址:getLocalAddress,获取主机名:getInnerAddressprivate只能本类调用:final就是一个锁定的值
1、jps:查看本机java进程信息。2、jstack:打印线程的栈信息,制作线程dump文件。3、jmap:打印内存映射,制作堆dump文件4、jstat:性能监控工具5、jhat:内存分析工具6、jconsole:简易的可视化控制台7、jvisualvm:功能强大的控制台
字符界面下接受用户从键盘输入,需要导入的包是
java.io包下列代码执行结果为()public static void main(String args[])throws InterruptedException{Thread t=new Thread(new Runnable() {public void run() {try {Thread.sleep(2000);} catch (InterruptedException e) {throw new RuntimeException(e);}System.out.print("2");}});t.start();t.join();System.out.print("1");}
- 因为子线程的休眠时间太长,因此主线程很有可能在子线程之前结束也就是输出结果是12,但是子线程用了join函数,因此主线程必须等待子线程执行完毕才结束因此输出结果只能是21
- try-catch-finally块中,finally块在以下几种情况将不会执行
- 调用System.exit()函数
- 守护线程被终止
- 在try中存在死循环,或者程序没有运行到try catch语句
- 在java中,可以使用违例(Exception)来抛出一些非错误的消息,但是这样的话比直接从函数返回一结果要更大的系统开销
- 因为函数调用是入栈出栈,而栈是在寄存器下的速度最快,且占用的空间少,而自定义异常是存在在堆中,异常的内存开销大
- 接口方法默认的是abstract public,所以在接口只写函数说明符合语法规则,但是变量默认的是用public final static修饰的,意思是它是静态常量,常量不管在接口还是在类中必须进行声明时初始化
public interface CallableStatement extends PreparedStatementpublic interface PreparedStatement extends Statement
判断程序执行结果的标准是所有的前台线程执行完毕
Collection接口:
List接口:内容允许重复:
- ArrayList
- LinkedList,同时实现了Queue
- Vector
- Set接口:内容不允许重复
- Queue接口:队列接口
- sortedSet接口:单值排序接口
Map接口:
- HashMap接口:无序存放,Key不重复
- HashTablle接口:无序存放,Key不重复
- TreeMap接口:按key排序,Key不重复
- IdentityHashMap接口:key可重复
- WeakHashMap接口:弱引用Map集合
Cookie在http中是存在于headers中的,通过request.getHeader和request.getCookies()都可,String getParameter(String name)和Object getAttribute(String name),Cookie[] getCookies()和String getHeader(String name)
wait()、sleep()、yield()的理解
1)wait()是Object的实例方法,在synchronized同步环境使用,作用当前对象,会释放对象锁,需要被唤醒。
2)sleep()是Thread的静态方法,不用在同步环境使用,作用当前线程,不释放锁。
3)yield()是Thread的静态方法,作用当前线程,释放当前线程持有的CPU资源,将CPU让给优先级不低于自己的线程用,调用后进入就绪状态。
1)Bootstrap ClassLoader负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类2)Extension ClassLoader负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/ *.jar或-Djava.ext.dirs指定目录下的jar包3)App ClassLoader负责记载classpath中指定的jar包及目录中class4)Custom ClassLoader属于应用程序根据自身需要自定义的ClassLoader,如tomcat、jboss都会根据j2ee规范自行实现ClassLoader加载过程中会先检查类是否被已加载,检查顺序是自底向上,从Custom ClassLoader到BootStrap ClassLoader逐层检查,只要某个classloader已加载就视为已加载此类,保证此类只所有ClassLoader加载一次。而加载的顺序是自顶向下,也就是由上层来逐层尝试加载此类。
如果try中存在return,那么这个return执行结果会先暂时保存下来,finally中执行的代码再执行(一定会被执行,但是无法改变之前暂存的return值),然后再return
```java
- 只看尖括号里边的!!明确点和范围两个概念
- 如果尖括号里的是一个类,那么尖括号里的就是一个点,比如List,List,List
