00:00
那么这块呢,咱们昨天啊,我在这里呢,又给大家。这个大概啊,写了一下这个课堂的一个笔记。这个课堂笔记这块呢,我们再把它打开啊,在这块啊,Document下边有一个课堂笔记,这个课堂笔记呢,第25天这个课堂笔记我们大概看一下,最近这两天我们讲的东西比较多一些,但是这个怎么说呢,很好理解,不是说那么难,难理解是不是?第25天首先主要是讲了string一个类,还有一个是STRING8块,String builder,还有八种基本数据练习所定的包装类,是不是,哎,那么首先第一个的话,对string在内存存储方面的一个理解,第一呢就是字符串一旦创建不可变。啊好嘞好嘞,小军啊,字符串一旦创建不可变,这个事儿呢,大家一定要记住,双引号里边有一个ABC,它永远是ABC,不能变成AB,也不能变成abcd啊,它存储在字符串常量池里边,这个要知道啊,方法去的字符串常量池当中,那么字符串的比较呢,它使用什么呀?ES方法啊,不能使用双等号,另外string呢,它已经重启了to string方法和ES方法啊,重启了to string和ES,那么string的构造方法是是哪些呢?通过这个哎,直接字变量的这种方式,可以构建一个我们的字符串对象。
01:14
那么大家一定要记住啊,记住什么呢?这个S里边保存的并不是ABC啊,我希望各位能够呃深层次的去理解一下,S里边实际上保存的是一个对象的内存地址,实际上等号右边这个双引号ABC呢,它是一个对象,这是一个字符串对象,在字符串常量池当中,它有个对象有内存地址,这个内存地址给了谁呢?给了我们这个S变量啊S变量那么再往下呢,实际上在堆里边呢,我们去哎创建一个对象,在堆当中有一个对象同时在我们字符串的常量池里边,怎么着?哎,也有一个哎对象叫ABC啊,这是两个对象,然后这边呢,我们可以通过一个bad的数组,哎,可以通过一个bad的数组起始加标和长度,通过差数组,差数组起始标和长度都可以去构建一个字符串对象出来啊,那么再往下呢,就是关于string这个类的21个方法,这21个方法呢,大家下去之后一定要多敲多练多写。
02:03
啊,提取任何一个方法,比如说我们截取字符串,大家还记得吧,Subt string是不是,哎,截取字符串sub,什么t string对吧?哎,还有一个什么呀,叫什么stars with开始ass with是不是,是否以这个开始,是否以这个结束对不对?Spli切切割字符串拆分字符串是不是,哎在这些东西呢,大家呢,得去练,不练肯定是不行啊,不练肯定是不行,String buffer和string builder呢,这个东西主要是对string这个类的一个一个补充,因为string这个类啊,不太适合做什么呀,字符串的频繁拼接,在Java语言中,字符串拼接会导致我们对象创建N多个对象啊,这样的话会给我们的一个内存造来很大的造成很大的一个压力,那么这个string buff和string build呢,它是一个可变长度的字符串,你可以这样去理解,底层是一个BY的数组,进行实现的初始化容量是16,那么这个BY的数组大家要注意。这里边的bad数组跟string里面BY数组的区别是啥?String by数组被final修饰,而我们这个string buffer string build中的BY数组呢,它并没有被final修饰啊,所以说呢,我们这个buffer build满了之后可以扩容,底层扩容的时候实际上用的是什么呀?哎,用是我们这个数组拷贝system every copy的方法完成我们数组的扩容,把呃,建一个大数组,是不是把原先那个小数组里面东西拷到那个大数组当中,完成数组的扩容。
03:22
那么spring builder当中最著名的一个方法叫aendendend aend啊,这个aend方法要记住你这个方法是干什么呢?是追加的,累加的,我们用这个对象的目的就是追加字符串,以后大家只要是开发中涉及到字符串频繁拼接,频繁拼接啊,你只要是频繁拼接的,那么我们就要干什么呀,来调这个pad方法完成追加啊,完成追加,那其中的八是线程安全的,Build是非线程安全的啊,这个大家要注意啊,一个是线程安全,一个是非线制安全的,那么八种基本数据链锁定的包装类呢,大家注意这八个名字你要有印象,Better short in long float double bulling character啊,Character。
04:03
那么这个呢?八种基本数据包装类的类名,其中这个in和character这两个可能跟基本数据类型不太一样,但是要注意啊,八种基本数据类型也是bad short in long,是不是?其实取的是这个单词的前三个,前三个字符取这个单词是前四个字符啊,那么八种基本数据类型它还不够吗?为什么再提供八种包装类呢?其实就是为了方便编程而存在的,就有些方法你不能传数字是不是?你不能传数字啊,但是你可以传一个包装类进去,这样不就行了吗?对不对,对于八种数据类型当中啊,它有六个是数字啊,它的副类是number,要注意要照葫芦画瓢,学习这个integer这个类里边的相关的方法,那么你其他的要要模仿啊,比如说double float long是吧,Short be都要模仿,讲一模仿,那么大家还记不记得我们这里边有。有一个什么呢?有一个呃,就是装箱和拆箱的概念,装箱拆箱的概念啊,要注意什么叫装箱,就是基本数据类型转换成包装类,什么叫拆箱包装类转换成基本数据类型,对不对,这是我们第25的一个课堂笔记啊,总结的干货就在这儿各位啊,第25天,那么到了我们第26天呢。
05:15
第26天这个课堂笔记这块呢,其实我们讲了这些东西,各位八种,首先八种基本数据类型,锁定包装类,还是这个什么是自动拆箱,什么是自动装箱,这是JDK5的新特性,对吧,你好好回想一下,自动装箱,自动拆箱怎么装怎么拆。对不对,哎,然后呢,再往下呢,你你重点要在这知道这个啊,什么引TX等于什么呀,也就100,嗯100对吧,哎引TY呢等于什么呀?哎等于100。那现在呢,我们点out.print打印输出什么呢?我们输出这个X呀,现在等于等于这个Y,现在这个结果你要注意它是true。啊,但是如果说你把这个呢,给他拿过来之后呢,诶我们。贴过来啊放到这儿,那么我们这一块呢,如果是1000的话啊,1000的话啊,或者说是你是一百二十八一百二十八,那么这个时候呢,我们在这呢,输出的结果就是false了啊就是false了啊X呢128 Y呢等128啊X等于等于Y啊输出的是false,因为我们底层啊,超了127之后啊,它就整数常量池就就就不再从整数常量池里边拿了,我们昨天原代码也看了,实际上在这个类加载的时候,执行一个静态代码块,而那个静态代码块会干什么呀,会完成什么呀,我们这个。
06:31
叫做,呃,这个这个叫什么?整数型常量值的一个初始化,负的128到正的127初始化出来,你像上面这个就没有超出范围,在这个整数型常量池当中,所以这个对象的内存,这个对象各位啊,X里边保存的并不是100啊,X保存是内存地址指向了一个对象。这个X里面啊,X里面并不是保存100啊,保存的是100这个对象的啊,这个对象的内存地址,你要知道这个这个这个东西啊,只不过这个对象内存地址和这个对象是同一个对象,所以它内存地址一样,所以最后的结果就是true,那么这个是false是因为它这个对象是超了整数型常量池了,所以只能扭一个,然后再扭一个,扭了两次,所以X里边保存内存地址和Y里面保存内存地址不一样,所以结果是false啊,要知道这个东西,那另外再往下引T者常用的方法,这块你要知道啊,什么引点什么。
07:23
Value of方法呀,对吧,in.pass in的方法呀,对吧?哎,重点呢是这两个方法啊,这两这两个方法,那如果说你这个in pass in这块呢,你写的是一个中文是吧?哎,那这个时候会出现一个异常,这个异常叫number format exception啊,我很早以前我就跟大家说了啊,大家以后在学习的过程当中,遇到异常了,你就总结到你的小本本上,遇到错误了,你就总结到你的小本本上,哎这个习惯你有没有保保留下来啊,保留下来的话,我觉得你慢慢慢慢就会,诶就略显成效啊,略显成效慢慢的就会发现,诶这个我不用在这个小本本上记得,为什么?因为我发现我遇到的错误基本上都已经遇见过了啊,都已经遇见过了,因为你看我每遇到一个异常的时候,我会给大家给大家唠叨几句。
08:11
什么控制针异常啊,是吧,数字格式化异常啊,是不是,哎,然后呢,还有一些class cast exception,这都是非常具有代表性的异常,出现这个异常是怎么什么原因,出现那个异常是什么原因,那么这个时候呢,大家呢要注意啊,要注意。注意总结,另外要知道inte string和INT3种类型互相转换,就这三种类型怎么去转换,Inte转成string string转成int,对吧?哎,你怎么转的是不是,哎,互相转这个下去之后呢,你自己去敲代码去演练一下啊,那么说完这个八种基本数据锁定的包装类之后,再往下我们说下日期。那么日期date这块,首先第一个要知道这个呀,是获取系统当前时间的,通过无参数的构造方法啊六然后第二个日期格式化这块呢,哎,我们只要传一个日期,然后通过simple data format这个对象,它的format方法把日期日期传进去,当然你需要在这指定日期格式。
09:05
对吧,这是年月日十分秒,当然你还可以指定什么呀,毫秒。毫秒是不是,那这样的话,你可以通过format这个方法完成什么呀?来完成我们的日期格式化,转换成具有一定格式的字符串,然后再往下呢,就是关于string转换成date,那你在这里如果给了一个字符串的一个日期。然后你一定要pass这个方法,它就会转换成一个日期类型date啊,这个互转大家要会,一个是data转成string,一个是string转成date,一个是方卖的方法,一个是pass方法。啊,获取毫秒数,要知道这个方法来获取1970年1月1日00:00:00零毫秒到我们系统当前时间的总毫秒数啊,你如果想获取。哎哎,这个昨天昨天的此时的时间,你怎么获取啊,哎,你那你要知道另外的一个构造方法,就是这个构造方法呢,这个地方可以传一个什么呀,好秒数。
10:00
可以传一个毫秒数啊,来构建一个日期啊,构建一个日期,你可以让你的这个begin干什么呀?减去对吧?减去什么呢?比如说哎,1000毫秒,一秒一秒乘以六十六十秒,一分钟乘以,哎60分钟等于一小时,一小时乘以什么呀,24,那就是一天呀。对吧?哎,那减去这个就是昨天的时间嘛,对不对,要注意这个啊,那么再往下呢,数字类这块呢,有一个that format,这个呢主要是进行数字格式化的,其中井号代表任意数字,逗号代表千分,位点呢代表小数点,哎,小数点后面表示保留几位小数,那如果你是四个零,就表示保留四个小数,但如果不够的情况下补零,就这意思啊,保留四位小数啊,不够的情况下补零啊,就这意思。big DEC呢,这个是财务软件里面通常用的big decim,要注意它的精度呢是极高的,我们财务软件银行用的都是big decim啊,不会用double,这个呢,大家要注意这个问题啊,好,这是关于数字类,那么再往下有个随机数,这个随机数呢,Random出来之后呢,Next int呢,来获取我们的一个随机数,整数型的next int这块如果传个101,表示获取零到100之间的随机数,啊,这是我们随机数这块的一个内容,那么再往下枚举这一块呢,大家注意。
11:14
枚举它是一种引用数据类型,也是生成class文件,枚举类型怎么定义呢?是那关键字注意啊,Class我们定义类,Interface呢,我们去定义什么呀,哎,Interface。我们定义接口,然后以那么呢,我们来定义枚举啊,定义枚举,那么枚举这块呢,其实就是一枚一枚一枚一枚一枚一枚可以列举出来,我们叫做枚举类型,但凡是你能够列举清楚的,一个一个给它列出来的,不管是多少你能给它列出来的,我们都可以定义成枚举类型。那么我们在实际的开发中,我们说了其中有一些方法呀,它可能返回值啊,返回两种情况,我们使用不玩类型就够了,我当时给大家这么说的啊,然后呢,还有一些程序在执行过程当中,可能说返回的结果超过了两种情况,那么超过两种情况,如果你采用这个数字返回,返回一代表什么,返回二代表什么,返回三代表什么,这个不是一个很好的设计,我们建议呢,定一个枚举类型,枚举类型这样的话,你返回类型如果是枚举类型的话,这样一枚枚可以列举出来,你的程序设计会更完美一些啊,这就是枚举类型它存在的意义。
12:14
啊,然后呢,这个异常机制,那么刚才我们已经回顾了啊,我们就不在这儿再回顾了,大家好好想一想,虽然说这两天东西多,但是你总结到这个课堂笔记里边,大家就会很清楚哦,其实掌握的东西也不是很多啊,也不是很多,只不过在讲的过程当中,为了让大家接受啊,我们讲的时间比较长啊,其实都在这儿了,各位啊,我在笔记里边。体现的总结的你要掌握,没总结的你就不用掌握了啊,你费费那个时间干什么,你过一段时间还是忘啊,你掌握一些重点,掌握一些干货,掌握这些干货之后,咱们以后能写代码就行。对,最主要的学习方法是这样的一个学习方法啊。大家注意一下啊。好了,那么这边呢,我们先建一个文件吧,文件这27的一个课堂笔记。
13:07
嗯。好,这个我先关掉了啊。
我来说两句