Java基础知识三慕课网.docx
- 文档编号:30712100
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:14
- 大小:1.93MB
Java基础知识三慕课网.docx
《Java基础知识三慕课网.docx》由会员分享,可在线阅读,更多相关《Java基础知识三慕课网.docx(14页珍藏版)》请在冰豆网上搜索。
Java基础知识三慕课网
*、异常与处理
1、什么是Java中的字符串
在程序开发中字符串无处不在,如用户登陆时输入的用户名、密码等使用的就是字符串。
其实,在前面的章节中我们就已经使用了字符串,例如我们在控制台中输出的"HelloWorld"、"imooc"、"爱慕课"等。
在Java中,字符串被作为String类型的对象处理。
String类位于java.lang包中。
默认情况下,该包被自动导入所有的程序。
创建String对象的方法:
2、Java中字符串的不变性
String对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。
如下所示:
运行结果:
结合上面的代码,关于字符串小伙伴们必须需要了解滴:
1、通过Strings1="爱慕课";声明了一个字符串对象,s1存放了到字符串对象的引用,在内存中的存放引用关系如下图所示:
然后通过s1="欢迎来到:
"+s1;改变了字符串s1,其实质是创建了新的字符串对象,变量s1指向了新创建的字符串对象,如下图所示:
2、一旦一个字符串在内存中创建,则这个字符串将不可改变。
如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder(后面章节中会讲到)。
3、每次new一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用”==”比较时也为”false”,如果只需比较内容是否相同,应使用”equals()”方法(前面条件运算符章节讲过哦~~)
3、Java中String类的常用方法Ⅰ
String类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取、将字符串转换为大写或小写、字符串分割等,下面我们就来领略它的强大之处吧。
String类的常用方法:
结合代码来熟悉一下方法的使用:
运行结果:
友情提示:
1.字符串str中字符的索引从0开始,范围为0到str.length()-1
索引从0开始,分别对应.学-0习-1(空格)-2J-3A-4V-5A-6(空格)-7编-8
2.使用indexOf进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回-1
3.使用substring(beginIndex,endIndex)进行字符串截取时,包括beginIndex位置的字符,不包括endIndex位置的字符
针对如此繁杂的方法,推荐大家一个学习技巧:
好记性不如烂笔头!
多看的同时一定要多敲哦~~
substring(a,b)应该包括a,不包括b.产生从a到b-1位置的新字符串。
这个因为在最后,字符串结尾隐含"\0",所以看不出来。
4、Java中的String类常用方法Ⅱ
我们继续来看String类常用的方法,如下代码所示:
运行结果:
那么,“==”和equals()有什么区别呢?
==:
判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象
equals():
比较存储在两个字符串对象中的内容是否一致
PS:
字节是计算机存储信息的基本单位,1个字节等于8位, gbk 编码中1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节。
所以我们看到上面的程序运行结果中,每个汉字对应两个字节值,如“学”对应“-47-89”,而英文字母“J”对应“74”。
同时,我们还发现汉字对应的字节值为负数,原因在于每个字节是8位,最大值不能超过127,而汉字转换为字节后超过127,如果超过就会溢出,以负数的形式显示。
(关于编码,我们在后面课程中会详细介绍,小小期待哦~~)
5、认识Java中的StringBuilder类
在Java中,除了可以使用String类来存储字符串,还可以使用StringBuilder类或StringBuffer类存储字符串,那么它们之间有什么区别呢?
String类具有是不可变性。
如
运行结果:
从运行结果中我们可以看到,程序运行时会额外创建一个对象,保存"helloworld"。
当频繁操作字符串时,就会额外产生很多临时变量。
使用StringBuilder或StringBuffer就可以避免这个问题。
至于StringBuilder和StringBuffer,它们基本相似,不同之处,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。
因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用StringBuilder类。
那么如何定义 StringBuilder类的对象呢?
我们来看下面的代码:
运行结果:
imooc
6、Java中的StringBuilder类的常用方法
StringBuilder类提供了很多方法来操作字符串:
例如:
在下面的示例代码中,创建了StringBuilder对象,用来存储字符串,并对其做了追加和插入操作。
这些操作修改了str对象的值,而没有创建新的对象,这就是StringBuilder和String最大的区别。
运行结果:
7、Java中的包装类
相信各位小伙伴们对基本数据类型都非常熟悉,例如int、float、double、boolean、char等。
基本数据类型是不具备对象的特性的,比如基本类型不能调用方法、功能简单。
。
。
,为了让基本数据类型也具备对象的特性,Java为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
基本类型和包装类之间的对应关系:
包装类主要提供了两大类方法:
1.将本类型和其他基本类型进行转换的方法
2.将字符串和本类型及包装类互相转换的方法
我们将在后面的小节逐步讲解,表着急哦~
我们以Integer包装类为例,来看下包装类的特性。
Integer包装类的构造方法:
如下代码所示:
Integer包装类的常用方法:
8、Java中基本类型和包装类之间的转换
基本类型和包装类之间经常需要互相转换,以Integer为例(其他几个包装类的操作雷同哦):
在JDK1.5引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。
那什么是装箱和拆箱呢?
我们分别来看下
装箱:
把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:
和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱
9、Java中基本类型和字符串之间的转换
在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。
其中,基本类型转换为字符串有三种方法:
1.使用包装类的toString()方法
2.使用String类的valueOf()方法
3.用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
再来看,将字符串转换成基本类型有两种方法:
1.调用包装类的parseXxx静态方法
2.调用包装类的valueOf()方法转换为基本类型的包装类,会自动拆箱
10、使用Date和SimpleDateFormat类表示时间
在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用java.util包中的Date类。
这个类最主要的作用就是获取当前时间,我们来看下Date类的使用:
使用Date类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出Date对象显示当前的时间,显示的结果如下:
其中,Wed代表Wednesday(星期三),Jun代表June(六月),11代表11号,CST代表ChinaStandardTime(中国标准时间,也就是北京时间,东八区)。
从上面的输出结果中,我们发现,默认的时间格式不是很友好,与我们日常看到的日期格式不太一样,如果想要按指定的格式进行显示,如2014-06-1109:
22:
30,那该怎么做呢?
此时就到了java.text包中的SimpleDateFormat类大显身手的时候了!
!
可以使用SimpleDateFormat来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。
1.使用format()方法将日期转换为指定格式的文本
代码中的“yyyy-MM-ddHH:
mm:
ss”为预定义字符串,yyyy表示四位年,MM表示两位月份,dd表示两位日期,HH表示小时(使用24小时制),mm表示分钟,ss表示秒,这样就指定了转换的目标格式,最后调用 format() 方法将时间转换为指定的格式的字符串。
运行结果:
2014-06-11 09:
55:
48
2.使用parse()方法将文本转换为日期
代码中的“yyyy年MM月dd日HH:
mm:
ss”指定了字符串的日期格式,调用 parse() 方法将文本转换为日期。
运行结果:
一定要注意哦:
1、调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要进行异常处理
2、使用Date类时需要导入java.util包,使用SimpleDateFormat时需要导入java.text包
PS:
其他基本类型与字符串的相互转化这里不再一一列出,方法都类似
11、Calendar类的应用
Date类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用Calendar类进行时间和日期的处理。
java.util.Calendar类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个Calendar对象,此对象已由当前日期时间初始化,即默认代表当前时间,如Calendarc=Calendar.getInstance();
那么如何使用Calendar获取年、月、日、时间等信息呢?
我们来看下面的代码:
其中,调用Calendar类的getInstance()方法获取一个实例,然后通过调用get()方法获取日期时间信息,参数为需要获得的字段的值,Calendar.Year等为Calendar类中定义的静态常量。
运行结果:
Calendar类提供了 getTime() 方法,用来获取Date对象,完成Calendar和Date的转换,还可通过 getTimeInMillis() 方法,获取此Calendar的时间值,以毫秒为单位。
如下所示:
运行结果:
12、使用Math类操作数据
Math类位于java.lang包中,包含用于执行基本数学运算的方法,Math类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如:
Math.round();
常用的方法:
通过案例我们来认识一下他们的使用吧!
!
运行结果:
PS:
Math类还提供了许多其他方法,各位小伙伴们可以注意关注wiki,查阅更多信息
13/
13、集合概述
14、collection和list接口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 基础知识 三慕课网