摘要:
一.时间复杂度 O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(2n) < O(n!) O(m+n),O(m*n) 二.算法时间复杂度分析 (1)O(logn) for(int i=1,i<=n;i=i*2) //i按2的幂(1,2,4,8)递增 count 阅读全文
摘要:
1.重载,重写 方法签名:方法名+参数列表。返回类型不是方法签名的一部分 static修饰的方法不能被重写,因为重写基于运行时动态绑定。而static方法在编译期就和类绑定了。但是被static方法可以再次声明 2.String 类中使⽤ final 关键字修饰字符数组来保存字符串, private 阅读全文
摘要:
1.hashCode 该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到 2.为什么java里没有全局变量? 全局变量是全局可见的,java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间 阅读全文
摘要:
1.概念:以前我们根据类来得到对象,现在我们可以根据对象类得到类。根据Class对象得到类的信息。在运行时动态的获取类的信息,动态调用类的方法 2.获取Class对象的三种方法:(1)对象.getClass();(2)类名.class;(3)Class.forName(“全限定类名”) 3.反射AP 阅读全文
摘要:
一.泛型 1.定义:泛型的本质是参数化类型,就是将类型参数化。限制数据元素的数据类型,提供了编译时的安全检查 泛型是编译时的,编译完成后,会将泛型擦除 2.泛型的用法:泛型类,泛型接口,泛型方法(泛型就是对参数进行设置) 3.泛型标记:E-Element,T-Type, K-Key, V-Vlaue 阅读全文
摘要:
1.java是一门静态语言,静态语言指的是在编译期间就能知道度数据类型的语言,在运行前就能够坚持类型的正确性,一旦类型确定后就不能再更改 相应的,动态语言没有任何特定的情况需要制定变量的类型,在运行时确定数据类型 静态语言:java,c++ 动态语言:JavaScrip,Python 2.不同操作系 阅读全文
摘要:
1.类加载过程:加载,连接(验证,准备,解析),初始化 2.垃圾收集器:新生代:Serial,ParNew,Parallel Scavenge 老年代:CMS(标记清除算法),Serial Old,Parallel Old,G1(标记整理算法) jvm体系总体分四大块: jvm组成 类加载 java 阅读全文
摘要:
1.方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写 (override)实现的是运行时的多态性(也称为后绑定) 2.默认修饰符有包访问权限 3.重写 equals 时总是要重写 hashCode 4.java 为系统异常和普通异常提供了不同的解决方案,编译器强制普通异 阅读全文
摘要:
1.看string源码,equals()方法 string类不可变,可以被共享 字符串连接是通过StringBuilder (或StringBuffer )类及其append方法实现的。 2.Math类:ceil,floor,round 3.Comparable接口 1.可以引入泛型避免ClassC 阅读全文
摘要:
一,线程概述 1.进程:正在运行的程序 2.线程:进程中同时运行的多个执行单元 关键字:共享资源, 3.多线程可以使:多段程序代码交替运行(一段程序代码可以看做一个子任务) 4.进程和线程的区别:进程是操作系统进行资源分配的基本单位;线程时操作系统进行调度的基本单位(即CPU分配时间片的基本单位) 阅读全文