A014_快捷键_常用类_包装_数学_字符串

目录


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包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
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 的方法

方法修饰和返回值方法名和描述
bytebyteValue() 返回byte类型的数,可能损失精度。
abstract doubledoubleValue() 返回double类型的数 ,可能涉及四舍五入。
abstract floatfloatValue() 返回float类型的数 ,可能涉及四舍五入。
abstract intintValue() 返回int 类型的数,这可能涉及舍入或截断。
abstract longlongValue() 返回long类型的数 ,可能涉及四舍五入或截断。
shortshortValue() 返回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常用方法
方法修饰和返回值方法名方法描述
intintValue()将Integer中装的数据取出来返回int
static intparseInt(String s)将传入的s数字转成int类型
static IntegervalueOf(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、写写,自己对于面向对象编程思想的理解及基本认识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值