eclipse快捷键
-
ctrl+/:单行注释;取消单行注释
-
ctrl+shift+/:多行注释;ctrl+shift+\:取消多行注释
-
alt+shift+r:批量重命名变量,选中变量,按快捷键,写新名称
-
ctrl+shift+t:查找类文件
-
ctrl+shift+r:查找各类块文件
-
ctrl+shift+f:格式化标准代码
-
tab:左移代码;shift+tab:右移代码
-
alt+↑:上移代码;alt+↓:下移代码
-
ctrl+W:关闭当前窗口;ctrl+shift+w:关闭所有窗口
-
ctrl+shift+O:引入包
-
ctrl+N:新建文件
-
alt+/:代码补齐、辅助提示
-
ctrl+shift+x:字母变大写;ctrl+shift+y:字母变大写
-
ctrl+E:显示当前打开的编辑列表
-
ctrl+L:定位到某行
-
ctrl+Q:定位到最后编辑位置
-
ctrl+T:显示当前类的继承结构
-
ctrl+M:最大后最小化窗口
-
alt+shift+Z:多用途快捷键
-
ctrl+1:快速修正
-
ctrl+alt+下方向键:将上一行代码在下一行复制
-
alt+shift+m:将方法快速封装
零散知识点
- 终止程序:System.exit(0);
一、 基础语法学习
-
常量定义时必须赋值,且不能更改,可以定义时用final定义
如:static final int pi = 3.14
-
float类型赋值时,需在值后加个f,否则精度错误
如:float a; a = 12.0f;
-
强制类型转化:
如: int age = (int) 18.5;
-
三目运算符: 表达式? 表达式1 : 表达式2;
- 常用于代替简单的if-else语句
-
逻辑运算:短路后续不计算
-
按位运算:按位与、按位或、按位非~(只针对int进行计算)、按位异或^(同为0,异为1)
-
逻辑运算和按位运算的区别:
-
逻辑与/或 可以短路
-
按位与/或 不可以短路
-
-
<<左移; >>右移;
-
无符号右移
-
条件语句-switch语句:
- switch的数据类型和case数据类型需一致
-
for循环迭代语句:for(变量声明:数组或集合){ 代码块 }
- 效率低
二、 面向对象
2.1 数组
-
声明:数据类型 [] 数组变量名称;
-
创建:
-
new 数据类型[size];size可以使常量、变量、表达式
-
{v1,v2,v3,v…} 静态方式创建
-
-
数组使访问数据类型,将数据名存在JVM栈,存放地址;实际数据存在JVM堆中。
2.2 自定义类和对象
- 当两个对象的类型一致时,可以通过一个已知对象为另一个位置对象赋值。两个对象相等,相等指对象是否同一,即相同的内存地址。
2.3 成员变量(成员属性)
- 成员属性必须加注释
实例属性
类属性和常量属性
-
final:常量属性,不能被修改
-
static:成员变量 -> 类属性(静态属性)-> 值被所有对象公用,当一个对象修改此值时其他对象的该值也被更改。描述类的性质,即成员共性。使用时用类名访问
访问修饰符
public
-
公共,级别最高
-
可以在任何地方使用
protected
-
保护,级别其次
-
不同包的子类
默认级别
- 同包中可使用
private
-
私有,级别最小
-
只能在当前类使用
构造方法
结构与作用
-
构造方法不能用static
-
没有返回类型
-
方法名与类名一样
有参构造
- 一般写有参构造时,要提供一个公共无参构造
##类成员方法
###类的成员实例方法
-
方法名一般以动词为主
静态方法
方法重载
三、 包装类
3.1 Integer类
-
构造:
-
Integer(int value):
-
Integer(String value):
-
-
常用方法:
-
Integer.valueOf:实现int类型包装为Integer类型 -> 得到String类型
-
intValue:实现Integer类型拆包为int类型 -> 得到int类型
-
Integer.parseInt:String类型变成int类型
-
-
自动装箱池:
为了提高性能,把-128~127之间的整数提前装箱完毕。
3.2 String类
3.3 日期相关类
四、 集合
4.1 List集合
-
常用方法:
-
add(E e):向列表末尾追加元素
-
add(int index,E e):在指定位置添加对象
-
addAll(Collection<? extends E> c):将集合元素添加到指定集合的末尾
-
get(int index):返回指定位置的对象
-
remove(int index):删除指定位置的对象
-
set(int index,E e):用指定元素替换列表中指定位置的元素
-
indexOf(Object o):返回第一个匹配对象的位置
-
lastIndexOf(Object o):返回最后一个匹配对象的位置
-
size():返回列表中的元素数
-
-
遍历方式
-
普通for
for(int i=0; i<list.size();i++){ Object object = list.get(i); System.out.printIn(object); }
-
迭代器遍历
Iterator iterator = list.iterator(); while(iterator.hasNext()){ Object next = iterator.next(); System.out.printIn(next); }
-
增强for(推荐)
for(Object 0: list){ System.out.printIn(o); }
-
toString
System.out.printIn(list);
-
##4.2 泛型
-
定义:泛型是一种把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊类型,又称为参数化类型,把类型当作参数传递
-
语法:
<数据类型> 数据类型只能是引用数据类型或类类型
-
泛型应用
-
泛型类:把泛型定义在类上
public class 类名<泛型类型1,…>
-
泛型方法:把泛型定义在方法上
public class <泛型类型>返回类型 方法名<泛型类型1,…>
-
泛型接口:把泛型定义在接口上
public interface 接口名<泛型类型1…>
-
-
符号:
以下四个都只是符号,表示泛型名称
1. T:type。
2. V:value
3. E:element
4. K:key
-
泛型通配符
-
泛型通配符<?>:任意类型,如果没有明确,就是Object以及任意的Java类
-
? extends E:向下限定,E以及子类
-
? super E:向上限定,E以及父类
-
-
集合依赖于迭代器,集合什么类型,迭代器是什么类型
4.2 集合类
-
集合的特点
-
内存可以不连续
-
部分支持下标访问,部分不支持
-
集合的元素必须是引用数据类型
-
-
集合常用的方法:
-
add(E e):将指定对象存储到容器中
-
addAll():将指定集合中的元素添加到调用该方法的集合中
-
size():返回集合的元素个数
-
contains(Object o):判读集合中是否包含参数指定的单个元素
-
containsAll(Collection<?> c):判断集合中是否包含指定元素的整体
-
remove(int index):移除列表中指定位置的元素
-
removeAll(Collection<?> c):从列表中移除指定collection中包含的其所有元素
-
clear():从列表中移除所有元素
-
isEmpty():如果列表不包含元素,返回true
-
set(int index, E element):将集合中指定位置元素进行替换
-
toArray():将集合转换成数组
-
retainAll(Collection<?> c):计算两个集合的交集
-
4.2.1 Collection集合
Java中集合的框架顶级是:Collection集合、Map集合
其中Collection集合操作元素的基本单位是:单个元素
其中Map集合操作元素的基本单位是:单对元素
4.2.2 List集合
List继承自Collection接口,有序元素可重复的集合。
List集合的实现类:
1. ArrayList
2. LinkedList
3. Vector
4. Stack
五、 异常exception
5.1 异常捕获
-
语法
try{ 可能产生异常对象的语句块 }catch(异常类型 引用名){ 针对当前异常类型对象的处理语句块 } finally{ 无论是否有异常一定会执行的语句块 }
##5.2 异常抛出
要求:子类中重写后的方法可以选择抛出与父类相同的异常、更小的异常或不抛出,但不能抛出大异常或同级异常。
##5.3 自定义异常
六、 IO流
6.1 File类
-
构造
-
File(Stirng pathname)
File file = new File("H:\\java\\ooo\\老司机带带我.mp4")
-
File(File parent, Stringchild)
File parent = new File("H:\\"); File file = new File(parent, "java\\ooo\\老司机带带我.mp4")
-
File(String parent, String child)
File file = new File("H:\\", "java\\ooo\\老司机带带我.mp4")
-
-
文件操作方法
-
public boolean createNewFile():创建文件
-
public boolean delete():删除文件
-
-
目录操作方法
-
public boolean mkdir():创建文件夹
-
public boolean mkdirs():创建文件夹,如果父文件夹不存在,会创建出来
-
public String[] list():列出file对象的所有子文件名和路径名
-
public File[] listFiles():列出file对象的所有子文件名和路径名
-
-
文件检测方法:
-
public boolean isDirectory():是否是目录
-
public boolean isFile():是否是文件
-
public boolean exists():是否存在
-
public boolean cnRead():是否可读
-
public boolean canWrite():是否可写
-
public boolean isHidden():是否隐藏
-
-
基本获取功能:
-
public String getAbsolutePath():获取绝对路径
-
public String getPath():获取相对路径
-
public String getName():获取名称
-
public long length():获取长度,字节数
-
public long lastModified():获取最后一次修改时间
-
-
public boolean renameTo(File dest):重命名
6.2 IO流
七、 网络编程
八、 反射 Reflect
8.1 通过反射获取Class类实例的三种反式
-
对象.getClass() 【必须明确类型】
-
类名.class() 【必须明确类型】
-
Class.forName(“全限定名”) --推荐使用
8.2 获取对象
-
获取接口:getInterfaces()
-
获取父类:getSUperclass()
-
获取构造方法:
-
getConstructor(Class<?>…parameterTypes):获取指定公共构造
-
getConstructors():获取本类所有的公共构造
-
getDeclaredConstructors(Class<?>…parameterTypes):获取本类指定的构造(共有或私有)
-
Constructor<?>[] getDeclaredConstructors():获取本类所有构造
-
-
创建对象:newInstance()、 con.newInstacne(“zhangsan”)
-
获取所有成员变量:getFields()、 getDeclaredFields()
-
获取单个成员变量:getField(String name)、 getDeclaredField(String name)
-
修改成员变量的值:set(Object obj, Object value)
-
获取所有成员方法:getMethods()、 getDeclaredMethods()
-
获取单个方法:getMethod()、 getDeclaredMethod()
-
暴力访问:method.setAccessible(true)
8.3 常用方法
-
getName():获取名称
-
getSimpleName():获取简称
-
getModifiers():获取访问修饰符
int modifiers = 对象.getModifiers(); //获取修饰符,以int标识 String string = Modifiers.toString(modifiers); //将int标识转变为标识符
-
getParameterTypes():获取参数列表
-
getReturnType():获取返回值类型
-
method.invoke(Object obj, Object… args):调用方法
九、 多线程
十、 正则
-
语法格式:
“^”【表示开头,”【^表示开头,”【表示开头,表示结尾,两者可不写】
-
使用方法:
第一步:给出正则表达式,String reg = “”;
第二步:用需要判断的字符串与正则匹配
法一:调用String类下的matches方法,boolear mc = "abc".matches(reg); 法二:调用Pattern类下的matches方法,boolear p = Pattern.matches(reg,“abc”);
-
应用
-
判断
-
分割
根据给定正则表达式匹配拆分此字符串
String ages = "18-24"; String reg = "-"; String[] split = ages.split(reg); //如果想要得到int类型 int startAge = Interger.parseInt(split[0]);
-
替换
public String replaceAll(String regex, String replacement)
-
获取
-