第十八天:BigDecimal
哪一场战不难打,越难打,越要打
狂神未更新,转千锋教育 (bilibili.com)
学习内容
引入
思考:以下程序的输出结果是多少
123456789package com.joker_yue.javalearn.bigDecimal;public class BigDecimal { public static void main(String[] args) { double d1= 1.0; double d2= 0.9; System.out.println(d1-d2); }}
上述结果为
10.09999999999999998
我们再来试试这个
12345678910111213package com.joker_yue.javalearn.bigDecimal;public class BigDecimal { public static void main(String[] args) { ...
第十七天:String类
加油,奥里给~!
狂神未更新,转千锋教育 (bilibili.com)
学习内容
String
字符串是常量,创建之后不可改变
Java对字符串进行了保护,不能直接修改这块内存中字符串的值。我们要修改的话将会创建一块新的空间。
字符串字面值储存在字符串池中,可以共享
在JDK6.0及之前版本,字符串常量池是放在Perm Gen区(也就是方法区)中; 在JDK7.0版本,字符串常量池被移到了堆中了。至于为什么移到堆内,大概是由于方法区的内存空间太小了
12345678package com.joker_yue.javalearn.string;public class Demo01 { public static void main(String[] args) { String name = "hello";//"hello"常量存储在字符串常量池中 name = "张三"; //【看我看我】 } ...
第十六天:Object类
那日云淡天高,我们正值年少
狂神未更新,转千锋教育 (bilibili.com)
学习内容
Object类的概念
超类、基类,所有类的直接或间接父类,位于继承树的最顶层(也就是所有的类都会直接或间接继承这个类)
任何类,如果没有显式的指明extends继承某个类,都会默认继承Object类,否则为间接继承
Object类中所定义的方法,是所有对象都具备的方法
Object类型可以储存任何对象
作为参数,可接受任何对象
作为返回值,可返回任何对象
位于java.lang.Object包中
Object类中的一些方法
getClass()方法
pubic final Class<?> getClass() {}
返回引用中储存的实际对象类型
应用:通常用于判断两个引用中实际储存对象是否一致
返回值:Class类型
我们来试试:
我们先创建一个类,随便啥的都行
12345678910111213141516171819202122232425262728293031323334//这里是Stude ...
第十五天:包装类;类型转换与装箱、拆箱;Integer缓冲区
即使爬到最高的山上,一次也只能脚踏实地的迈一步
狂神未更新,转千锋教育 (bilibili.com)
学习内容
什么是包装类
基本数据类型所对应的引用数据类型
在Java中有8种基本类型,我们无法这8中基本类型使用类方法,就比如:
12int num=10;num.selfadd(); //【自己编的,请勿当真】是不行的
为了能让这些基本类型具有更加强大的功能,于是其对应的引用类型便产生了。这便是基本引用类型的包装类
Object可统一管理所有类,包装类的默认值是null
基本数据类型
包装类型
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
boolean
Boolean
char
Character
类型转换与装箱、拆箱
什么是装箱和拆箱?
比如我在栈中有一个int num = 10;然后我想让它进入堆中,但是堆中都是对象,所以我们需要将这个基本 ...
第十四天:匿名内部类
万事开头难,中间难,结尾难狂神未更新,转千锋教育 (bilibili.com)
学习内容
匿名内部类
没有类名的局部内部类(一切特征都与局部内部类相同)
必须继承一个父类或者实现一个接口
定义类、实现类、创建对象的语法合并,只能创建一个该类的对象
优点:减少代码量
缺点:可读性较差
我们先按照传统方法写一个试试:
首先我们创建一个接口
1234567//这里是Usb.javapackage com.joker_yue.javalearn.object4;//接口public interface Usb { void service();}
然后创建一个main方法
12345678910//这里是TestUsb.javapackage com.joker_yue.javalearn.object4;public class TestUsb { public static void main(String[] args) { //创建一个接口类型的变量 Usb usb ...
第十三天:内部类与常用类
知识有两种,一种是你知道的,还有一种是你知道在哪可以学到的狂神未更新,转千锋教育 (bilibili.com)
学习内容
内部类
内部类的分类
成员内部类
静态内部类
局部内部类
匿名内部类
内部类的概念
在一个类的内部再定义一个完整的类
1234class Outer{ class Inner{ }}
内部类的特点
编译之后会产生独立的字节码文件
也就是两个类会生成两个class文件
内部类可以直接访问外部类的私有成员,而不破坏封装
12345678910111213package com.joker_yue.javalearn.object;//身体public class Body { private String name; //头部 class Header{ public void show(){ System.out.println(na ...
第十二天:异常
人最大的敌人就是自己
学习内容
什么是异常
在实际工作中,遇到的情况不可能是非常完美的,可能程序跑着跑着就会遇到一些异常问题,异常Exception,意思是例外。我们需要让我们的程序做出合理的异常处理,以不至于程序崩溃
异常指程序运行过程中出现的不期而至的各种情况:比如文件找不到,网络连接错误,非法参数等
异常发生在程序运行期间,它影响了正常的程序执行流程
123456789//这里是demo01.javapackage com.joker_yue.javalearn.exp;public class demo01 { public static void main(String[] args) { System.out.println(11/0); }}
它会输出以下异常
12Exception in thread "main" java.lang.ArithmeticException: / by zero at com.joker_yue.javalearn.exp.dem ...
第十一天:面向对象-4
坚持就是胜利,加油,奥里给!
学习内容
static关键字
假设我们有如下代码
12345678910111213141516171819202122//这里是Student.javapackage com.joker_yue.javalearn.OOP.demo07;import com.joker_yue.javalearn.method.Students;//Staticpublic class Student { private static int age;//静态的变量 private double score;//非静态的变量 public static void main(String[] args) { Student stu1 = new Student(); System.out.println(Student.age); System.out.println(Student.score); //【1】 System.out.printl ...
第十天:面向对象-3
人类最大的敌人是傲慢,其次是无知
学习内容
封装
该露的露,该藏的藏
我们程序设计要追求==”高内聚,低耦合“==。
高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的部分给外部使用
封装(数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表现,而应通过操作接口来访问,这称为信息隐藏
记住这句话就够了
属性私有,get/set
12345678910111213141516171819package com.joker_yue.javalearn.OOP;public class Student { private String name;//名字,申明为private私有 private int id;//学号 private char sex;//性别}//在Application.java中new一个新对象为s1//然后尝试对s1.name操作,我们发现无法操作//但是在Student.java中我们修改name为public的话就 ...
第九天:面向对象-2
且将新火试新茶,诗酒趁年华
学习内容
构造器详解
1234567891011121314151617181920//这里是Application.javapackage com.joker_yue.javalearn.OOP;public class Application { public static void main(String[] args) { //new 实例化了一个对象 //此时,在Person.java中只声明了Person类但是什么也没写 //一个类即使什么都不写,也会存在一个方法 //无参 Person person = new Person(); System.out.println(person.name); //有参 Person xiaoMing = new Person("小明"); System.out.println(xiaoMing.name); ...