目录
Eclipse快捷键_Java常用类
1.内容介绍
eclipse快捷键(慢慢掌握)
常用类的学习方法(掌握)
包装类int Integer(掌握)
数学相关类Math/BigInteger/BigDecimal(了解)
System/Runtime垃圾回收机制(了解)
String/StringBuffer/StringBuilder(重点)
2.Eclipse快捷键使用
2.1.为什么需要学习Eclipse快捷键
1.在我们的实际开发过程中,掌握更多的快捷键,有利于我们快速编码,
2.前期我们已经使用了很长一段时间的Eclipse但是没有告诉大家快捷键,是因为希望大家多进行一些基础编码,敲键盘的过程,现阶段需要同学们掌握一些快捷键,跟上编码速度
2.2.基本快捷键使用
快捷键 | 说明 |
---|---|
Alt+/ | 代码提示 |
Alt + 方向键(左右) | 返回上一级 |
Alt + 方向键(上下) | 上下移动当前行的内容 |
Alt + Shift + M | 抽取方法 |
Alt + Shift + J | 文档注释 |
Alt + Shift + S | 快捷菜单(创建Getter/Setter/Constructor) |
Alt + Shift + R | 重命名 |
Ctrl + 1 | 代码补全提示,快速提取变量 |
Ctrl + 2 , L(分两次按) | 直接提取变量 ,F 成员变量 |
Ctrl + D | 删除行 |
Ctrl + / | 单行注释及取消注释 |
Ctrl + O | 快速查看方法 |
Ctrl + S | 保存当前打开页面代码 |
Ctrl + Shift + S | 保存所有打开页面代码 |
Ctrl + T | 查看选中类继承关系 |
Ctrl + Alt + 方向键(上下键头) | 复制代码,可能屏幕会转向了,因为和cpu的集显快捷键冲突了 |
Ctrl + 鼠标单击点击 | 查看点击的源码详情 |
Ctrl + shift + /(正斜杠) | 多行注释 |
Ctrl + Shift+(反斜杠) | 取消多行注释 |
Ctrl + Shift + T | 搜索类 |
Ctrl + Shift + O | 包导入或者删除无引用的包 |
Ctrl + Shift + F | 格式化代码 容易和输入法的快捷键冲突。 |
Ctrl + Shift + 回车 | 向上插入一行 |
Shift + 回车 | 向下插入一行快捷键 |
2.3.快捷键快速生成getxxx(),setxxx()方法及构造方法
2.4.重新设置快捷键
2.5.小结
快捷键没什么可理解的,使用还是比较简单,
只是接下来老师编码速度会稍微快些,有时候会组合的用到一些快捷键,大家可能会会想怎么用的快捷键,这个没有必要,安心学习知识。
自己下来经过三五天的,快捷键使用,也会慢慢上手,切记不因一时使用不顺手,而弃用快捷键,一定要用才能熟悉
3.概述Java中的常用类学习
3.1.常用类是什么?
3.2.为什么需要学习Java中的一些常用类,目的是什么?
实际开发中经常使用到的,Java已经为我们写好的
觉得是越多越好,越少越少越好
3.3.学些啥?学些Java中写好的类需要注意学习什么?
- 类 :描述一类事物,写一个类的语法都会,别人写的类看懂:类是用来做什么
- 类中的成员:
字段 : 私有的我们看不到,不关心,重点关注全局常量
方法 : 重点中重点! 一个方法看成是一个功能 - 构造方法 : 创建对象的,通过对象来调用方法
使用this在自己类内部,调用自己的构造方法
使用super在子类中调用父类的构造方法 - 注意: 介绍很多的类,每一个类中有很多的方法,记不住怎么办呢?
应该知道常用的方法(功能)在哪个类中,并且会使用API查询到,不要求全部记住方法名
3.4.常用类的学习方法。
3.5.小结
重点学习 类 构造方法 方法
4.包装类
4.1.什么是包装类
简单理解 :Java为每种基本数据类型,提供对应的类,我们称之为包装类。
例如 : int Integer 其实都表示一个整数,并且范围是一样的
Java中的包装类有哪些
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
4.2.为什么要使用包装类
Java提供了两个类型系统,基本类型与引用类型,在开发当中,我们希望基本类型能像对象一样操作,拥有更多的功能,这时候就可以使用基本类型对应的包装类,通过调用其字段,方法来完成功能需求。
例如:需要将字符串类型的数字“66”转成int类型,就可以调用包装类的方法来完成。
4.3.包装类用在什么地方
将来学习数据库的时候,里面的数据默认值为null,如果用基本数据类型接收会报错,就需要使用包装类型接收;
包装类型都可以相应的转化为基本类型,如果你设置为基本类型比如int的话,它默认初始化为0,但0本身就代表着一种含义,如果为null的话,既好理解,也可以方便开发人员转化!而且很多xml配置中默认都是null。
简单来说就是我们如果自定义了一个Student类,其中有一个属性是成绩score,如果用Integer而不用int定义,一次考试,学生可能没考,值是null,也可能考了,但考了0分,值是0,这两个表达的状态明显不一样.
4.4.包装类的继承体系
Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法
方法修饰和返回值 | 方法名和描述 |
---|---|
byte | byteValue() 返回byte类型的数,可能损失精度。 |
abstract double | doubleValue() 返回double类型的数 ,可能涉及四舍五入。 |
abstract float | floatValue() 返回float类型的数 ,可能涉及四舍五入。 |
abstract int | intValue() 返回int 类型的数,这可能涉及舍入或截断。 |
abstract long | longValue() 返回long类型的数 ,可能涉及四舍五入或截断。 |
short | shortValue() 返回short类型的数 ,这可能涉及舍入或截断。 |
4.5.包装类对象的创建方式(Integer)
构造方法 | ??? |
---|---|
Integer(int value) | 传入int类型数字返回Integer对象 |
Integer(String s) | 传入String类型数字返回Integer对象 |
案例:
思考: 以上两种创建对象的方式有什么应用?
简单提示: 在项目很多时候从前台传输数据到后台几乎都是字符串的形式
4.6.排错,今日重点中的重点
定位错误的位置:
I.删除法:删除新编写的代码,运行如果没有错,说明是当前位置有错
II.根据提示信息:从上面的错误提示中 at 开头,找到我们自己写的代码最后一个 34然后点一下(自动定位)
III.deBug逐行运行代码
排错
I.根据删除代码位置Integer i5 = new Integer(“A”); 思考可能出错原因:分析并解决
A.只可能构造方法发生错误
II.根据错误信息NumberFormatException查看通过API查看错误描述:异常说明有不可解析参数
A.查看构造方法描述:如果抛出NumberFormatException异常说明有不可解析参数
B.分析原因:不合适的字符串例如“A”不能解析为整数 但是“10”可以
III.Integer包装类常用的一些方法: 以JDK API文档为准
4.7.Integer常用方法
方法修饰和返回值 | 方法名 | 方法描述 |
---|---|---|
int | intValue() | 将Integer中装的数据取出来返回int |
static int | parseInt(String s) | 将传入的s数字转成int类型 |
static Integer | valueOf(String s) | 将传入的s数字转成Integer类型 |
案例:
4.8.自动装箱拆箱
基本类型与对应的包装类对象之间,来回转换的过程称为装箱与拆箱:
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
I.以int – Integer为例
A.自动装箱 : Integer i1 = 123;
B.自动拆箱 : int i2 = i1;
C.手动装箱: int i2 = new Integer(123);
D.手动拆箱: int i2 = i1.intValue();
II.自动拆箱装箱的特点
A.从jdk5开始支持自动装箱 拆箱的
B.自动装箱拆箱只支持 基本数据类型和其对应的包装类
4.9.享元模式
包装类将区间【-128,127】中的整数缓存起来了,直接赋值时,引用缓存中的对象,不再创建对象。
测试:
非new出来,缓存范围之内才可享元
思考:浮点数会不会存在享元模式:不会…
思考:上面这段代码学了之后有什么用?
掌握这项知识,理解设计思想
需要知道的就是再一次强化:== equals的区别
如果是引用类型,而我们希望比较值是否相等,推荐使用equals更靠谱
equals, 如果没有重写equals比较的是地址值,重写之后,比较的是内容.
4.10.小结
1.包装类,我们仅仅用了Integer示例,
①包装类的概念
②创建方式
③自动拆箱装箱
④享元模式
2.其他相关包装类类似,通过Integer的学习,需对其他的包装类具备一定的概念
5.数学相关类Math/BigInteger/BigDecimal
5.1.数学相关类介绍
这几个常用类比较简单,主要是理解,为后期做知识储备,用到的时候在回顾能看懂即可,无需过分纠结,做好练习,重点关注概念及示例
5.2.Math
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数
记住一点: 以后遇到1中的情况,需要用到数学计算,知道今天学过,来这里来找即可
5.3.BigInteger
能够表示比long更大的整数,它怎么去装更大的值(它是一个类啊)
如何去操作:例如使用表示的数,求加法运算
//BigInteger bi = 10;//自动装箱,根本不存在.自动拆箱装箱,只与对应得包装类存在
BigInteger b1 = new BigInteger("1111111111111111111111111111");
BigInteger b2 = new BigInteger("1111111111111111111111111111");
//System.out.println(b2+b1);//自动装箱,根本不存在.自动拆箱装箱,只与对应得包装类存在
System.out.println(b2.multiply(b1));
System.out.println(b2.add(b1));
两个BigInteger不能够直接使用+ 相加,------》 查看BigInteger的文档,到这个类中去找方法(+ - * 等操作都写成了方法)
int Integer BigInteger 他们的一些关系
注意:Integer 是int 的包装类,他们之间存在自动装箱拆箱,而和BigInteger没有任何关系
5.4.BigDecimal
可以精确的表示小数
简单说我们需要学习的就是: 怎么表示一个小数(精确);如何运算
5.5.小结
理解概念,做好练习 Math提供静态数学方法,BigIntger表示更大整数BigDecimal表示更加精准的浮点数
6.System/Runtime/Java中的垃圾回收机制
6.1.为什么需要学习
因后期学习开发中会用到里面的一些API,其中垃圾回收机制及代码操作实例,需要我们了解一些概念,该知识点我们作为了解
6.2.System类中常用方法介绍
java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用的方法有:
public static long currentTimeMillis():返回以毫秒为单位的当前时间。
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
static void arraycopy ( Object src, int srcPos, Object dest, int destPos, int length )
复制数组.
src :源数组
srcPos:源数组的开始位置
dest:目标数组
destPos:目标数组的开始位置
length:复制几个元素
6.3.Runtime类了解
每个Java应用程序都有一个Runtime实例,可以通过getRuntime方法获得。
6.4.Java中的垃圾回收机制了解
I.什么是Java中的垃圾?
A.简单理解为,当我们的对象失去所有的引用的时候,对象不会再被用到!
B.示例Integer i = new Integer(); i = null;//刚才i中保存的创建对象失去引用
II.怎么看到失去引用的对象被回收的效果
A.在Java中提供了两个方法和垃圾回收相关的
1.Object 中 finalize()
a.:所有的对象上都可以调用此方法,当这个对象被回收的时候就会调用此方法
2.System 中的 gc()方法 : 调用此方法表示我们做了一些努力来回收垃圾
B.怎么测试看效果?
1.可以自定义类
2.覆写finalize() 在里面写一个打印语句
3.创建一些自定义类的对象,变为垃圾(创建匿名对象)
4.当对象被回收的时候会主动调用自己复写的finallize方法
5.如果上面的效果不明显,可以尝试调用gc()方法
6.5.小结
1.System常用方法
2.Runtime的理解和认识
3.Java中的垃圾回收机制概念及示例的理解
7.字符串相关类String/StringBuilder/StringBuffer
7.1.什么是字符串相关的类
可以描述一串字符相关的一些类,例如String、StringBuilder、StringBuffer。
7.2.为什么需单独学习字符串相关的类
1.处理字符串的类不仅仅只有String 字符串处理相关的类型还有两个需要掌握
2.字符串处理在编程中应用非常广泛,所以字符串非常重要,需要对其掌握,原理有所认识
7.3.String类
在API中对String类有这样的描述:字符串是常量,它们的值在创建后不能被更改。
7.3.1 String对象的创建方式(目前介绍常见)
常量赋值 String s = “你是个小串串”;
通过调用String类的构造方法
String()
String(String str)
…更多构造方法 ,以后再说(IO流的时候)
7.3.2 关于空字符串
① String str1 = null; //表示str1没有指向一个对象
② String str2 =""; //有一个对象,对象是空
③ String str3 = new String(); //和②差不多
7.3.3 字符串常用方法
7.3.4 字符串拼接问题:
涉及到的技术点:
1.常量优化机制
2.常量池
7.4.StringBuffer/StringBuilder
7.4.1 String/StringBuffer/StringBuilder的关系与区别
字符序列体系:这3个类没有直接或者间接的继承关系(不是直系亲属)
区别:
I.String : 它的对象一旦被创建那么值和长度就固定不变了
II.StringBuffer : 它的对象内容是可以被改变的;
A.是线程安全的
B.版本是1.0
III.StringBuilder : 它的对象内容是可以被改变的;
A.是线程不安全的
B.版本是 1.5
C.相当于StringBuffer效率更高一点
7.4.2 StringBuffer/StringBuilder构造方法
两个用法基本一样,以StringBuilder为例:
StringBuilder() 创建一个空的字符序列对象,其初始容量为 16 个字符。 初始容量什么意思?
StringBuilder(int capacity) 创建一个空的字符序列对象,其初始容量由 capacity 参数指定。
StringBuilder(String str) 根据传入的字符串内容,创建字符序列对象。
StringBuilder(CharSequence seq) 根据传入的参数内容,创建一个字符序列对象。
7.4.3 StringBuffer/StringBuilder常用方法
这两个类中的方法功能几乎是一样的;
我们只用学习不同于String的特有的一些方法:
Append()添加方法
reverse() 反转字符串
toString() 返回String类型
7.5.小结
8.课程总结
8.1.重点
1.方法的调用方式
2.API文档的查询
3.介绍过的类中的常用方法
8.2.难点
感觉方法太多记不住,解决办法:
1.代码都是通过名字来使用切记
2.以类作为整体认识有基础概念:对应的方法到对应的API查找
3.以后授课用到也不用觉得想不起来:老师都会给你用到,写出来
4.背是多余的:要学会在应用过程中加强面向面向对象的理解而不是背代码
9.常见面试题
1.请你说说int和Integer的区别
2.创建了几个字符串对象的面试题
String s1 = “A” + “hello” String s2 = “A”; String s3 = s2 + “hello”;
String s4 = new String(“A”) + new String(“hello”);
3.String/StringBuffer/StringBuilder 他们的区别
4.3的编程题体现,请看如下的代码,请说出控制台打印的结果分析原因
10.课后练习[30分钟]
1、把今天提到过的所有的方法都练习熟练
2、找出并测试 基本数据类型 – 其包装类 – String 之间相互转换的方法
例如: int 转 Integer new Integer(10);
Integer 转 int
int 转 String
String 转 int
Integer 转 String
String 转 Integer
3、写一段程序把数字1到1000链接起来,然后打印,并测试程序运行时间
11.课外阅读
1、今天回去看至少3篇不同的文章描述java中的垃圾回收机制
12.每日一练:[20分钟]
1、写写,自己对于面向对象编程思想的理解及基本认识