从零开始学java
从零开始学java系列,从入门到入土,其实只是自己学习过程中的一种记录方式,比用纸记录简单所以选择博客形式,博客可以随时回顾。
与猫子
这个作者很懒,什么都没留下…
展开
-
从零开始学java(四十二)--容器详解,Collection接口,List的简单使用
从零开始学java(四十二)--容器详解,Collection接口Collection接口List特点和常用方法ArrayList底层Collection接口Collection是接口,它表示一组对象,它是集中、收集的意思。Collection接口的两个子接口是List、Set接口。下图为Collection接口中定义的方法。由于List、Set是Collection的子接口,意味着所有List、Set的实现类都有上面的方法。我们下一节中,通过ArrayList实现类来测试上面的方法。代码示例:原创 2020-11-15 16:13:53 · 103 阅读 · 0 评论 -
从零开始学java(四十一)--容器介绍,泛型Generics
从零开始学java(四十一)--容器介绍,泛型Generics容器介绍泛型Generics容器介绍数组也是一种容器,可以在其中放置对象或基本数据类型。数组的优势:是一种简单的线性序列,可以快速地访问数组元素,效率高,从效率和类型检查地角度看,数组优先选择。数组的缺点:不灵活。容量需要事先定义好,不能随着需求的变化而变化。基于数组并不能满足我们对于“管理和组织数据的需求”,所以我们需要一种更强大、更灵活、容量随时可扩的容器来装载我们的对象。下图为容器的接口层次结构图。Set接口表示无顺序,不可重原创 2020-11-15 14:34:11 · 80 阅读 · 0 评论 -
从零开始学java(四十)--枚举的使用
从零开始学java(四十)--枚举的使用枚举的使用枚举的使用JDK1.5引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。格式如下:enum 枚举名 { 枚举体(常量列表)}所有的枚举类型隐性地继承自 java.lang.Enum,枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final修饰的。可以直接通过枚举类型名使用它们。1. 当你需要定义一组常量时,可以使用枚举类型。2. 尽量不要使用枚举的高级特性,事实上高级特原创 2020-11-14 16:05:08 · 109 阅读 · 0 评论 -
从零开始学java(三十九)--File类的使用
从零开始学java(三十九)--File类的使用File类的简单使用遍历目录结构与树状展示File类的简单使用java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、删除文件、修改文件的属性时经常会用到本类。File类的常见构造方法:public File(String pathname)以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。代码示例package File类;import java.io原创 2020-11-14 15:54:05 · 67 阅读 · 0 评论 -
从零开始学java(三十-八)--Math类的简单使用
从零开始学java(三十-八)--Math类的简单使用java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中的相关内容,可以使用apache commons下面的Math类库。Math类的常用方法: 1. abs 绝对值 2. acos,asin,atan,cos,sin,tan 三角函数 3. sqrt 平方根 4. pow(double a, double b) a的b次幂原创 2020-11-14 15:08:45 · 122 阅读 · 0 评论 -
从零开始学java(三十七)--Calendar日历类
从零开始学java(三十七)--Calendar日历类Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。注意月份的表示,一月是0,二月是1,以此类推,12月是11。 因为大多数人习惯于使用单词而不是使用数字来表示月份,这样程序也许更易读,父类Calendar使用常量来表示月份:JANUARY、FEBRUARY等等。.原创 2020-11-13 21:54:31 · 81 阅读 · 0 评论 -
从零开始学java(三十六)--Date类源码分析,DateFormat和SimpleDateFormat的使用
从零开始学java(三十六)--Date类源码分析,DateFormat和SimpleDateFormat的使用时间日期相关类Date类DateFormat和SimpleDateFormat的使用(用于时间和字符串的相互转化)时间日期相关类在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)如果想获得现在时刻的“时刻数值”,可以使用:long now = System.currentTimeMillis();Date类在标准J原创 2020-11-10 20:57:48 · 196 阅读 · 0 评论 -
从零开始学java(三十五)--String类源码分析,StringBuffer和StringBuilder
从零开始学java(三十五)--String类源码分析String类源码分析StringBuffer和StringBuilderStringBuffer和StringBuilder的常用方法可变字符序列(StringBuffer/StringBuilder)与不可变字符序列(String)的使用陷阱String类源码分析String 类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。 那什么叫做“不可变对象”呢?指的是对象内部的成员变量的值无法再改变。Stri原创 2020-11-10 15:45:08 · 110 阅读 · 0 评论 -
从零开始学java(三十四)--包装类与包装类的缓存问题
从零开始学java(三十四)--包装类Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[]数组或集合中的操作等等。为了解决这个不足,Java在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。八个包装类的使用方法都十分相似,初学主要掌握其中一种。包装类均位于java.lang包,原创 2020-11-10 11:32:41 · 752 阅读 · 0 评论 -
从零开始学java(三十三)--异常机制(三)声明异常(throws子句)
从零开始学java(三十三)--异常机制(三)声明异常(throws子句)声明异常(throws子句)的概念自定义异常声明异常(throws子句)的概念当CheckedException产生时,不一定立刻处理它,可以再把异常throws出去。在方法中使用try-catch-finally是由这个方法来处理异常。但是在一些情况下,当前方法并不需要处理发生的异常,而是向上传递给调用它的方法处理。如果一个方法中可能产生某种异常,但是并不能确定如何处理这种异常,则应根据异常规范在方法的首部声明该方法可能抛出原创 2020-11-08 19:15:25 · 256 阅读 · 0 评论 -
从零开始学java(三十二)--异常机制(二)try-catch捕获异常
从零开始学java(三十二)--异常机制(二)CheckedException已检查异常异常处理的方式try-catch捕获异常CheckedException已检查异常所有不是RuntimeException的异常,统称为Checked Exception,又被称为“已检查异常”,如IOException、SQLException等以及用户自定义的Exception异常。 这类异常在编译时就必须做出处理,否则无法通过编译。异常处理的方式异常的处理方式有两种:使用“try/catch”捕获异常、使原创 2020-11-08 17:40:30 · 822 阅读 · 0 评论 -
从零开始学java(三十一)--异常机制(一)基本内容
从零开始学java(三十一)--异常机制异常(Exception)的概念异常的分类ERROREXCEPTIONRUNTIMEEXCEPTION异常处理注意事项异常(Exception)的概念异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、需要处理的文件不存在、数组下标越界等。在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。所谓异常处理,就是指程序在出现问题时依然可以正确的执行完。Java是采用面向对原创 2020-11-08 17:05:51 · 78 阅读 · 0 评论 -
从零开始学java(三十)--String类
从零开始学java(二十九)--String类String基础String类和常量池String 常用方法String基础String类又称作不可变字符序列。String位于java.lang包中,Java程序默认导入java.lang包下的所有类。Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、’a’、’v’、’a’组成的。Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的原创 2020-10-30 23:41:13 · 161 阅读 · 0 评论 -
从零开始学java(二十九)--内部类
从零开始学java(二十八)--内部类内部类的概念内部类的作用:内部类的使用场合:内部类的分类成员内部类(可以使用private、default、protected、public任意进行修饰。 成员内部类文件:外部类$内部类.class)非静态内部类(普通内部类)静态内部类匿名内部类局部内部类内部类的概念一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(innerclasses)。内部类可以使用public、default、protected 、priva原创 2020-10-30 22:09:55 · 90 阅读 · 0 评论 -
从零开始学java(二十八)--接口的定义,使用等相关知识
从零开始学java(二十七)--接口的定义,使用等相关知识为什么需要接口?接口和抽象类的区别?接口的本质区别接口定义和使用接口的多继承面向接口编程为什么需要接口?接口和抽象类的区别?接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。从接口的实现者角度看,接口定义了可以向外部提供的服务。从接口的调用者角度看,原创 2020-10-30 00:07:05 · 236 阅读 · 0 评论 -
从零开始学java(二十七)--抽象方法和抽象类
从零开始学java(二十六)--抽象方法和抽象类抽象方法和抽象类抽象方法和抽象类抽象方法使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。抽象类包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。抽象类的使用要点:有抽象方法的类只能定义成抽象类抽象类不能实例化,即不能用new来实例化抽象类。抽象类可以包含属性、原创 2020-10-29 23:22:49 · 87 阅读 · 0 评论 -
从零开始学java(二十六)--多维数组,多维数组存储表格数据
从零开始学java(二十四)--多维数组多维数组多维数组存储表格数据多维数组多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。二维数组示例public class Test_TwoDimesion_Arrays { public static void main(String[] args) { //int[] a = new int[3] ; //Car[] cars =原创 2020-10-29 23:08:55 · 363 阅读 · 0 评论 -
从零开始学java(二十五)--数组与 java.util.Arrays工具类
从零开始学java(二十四)--数组数组的定义数组的声明数组的初始化静态初始化动态初始化默认初始化数组的遍历for-each循环数组的拷贝数组的定义数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。数组的三个基本特点:长度是确定的。数组一旦被创建,它的大小就是不可以改变的。其元素必须是相同类型,不允许出现混合类型。数组类型可以是任何数据类 型,包括基本类型和引用类型。数组变原创 2020-10-02 15:45:06 · 166 阅读 · 0 评论 -
从零开始学java(二十四)--final修饰变量,方法和类
从零开始学java(二十三)--final修饰变量,方法和类final关键字的作用final关键字的作用修饰变量:被修饰的变量不可改变,一旦赋了初值,就不能被重新赋值final int MAX_SPEED = 120;修饰方法:该方法不可被子类重写。但是可以被重载!final void study(){}修饰类: 修饰的类不能被继承。比如:Math、String等final class A {}测试final关键字package Chapter_5;p原创 2020-09-30 00:19:19 · 83 阅读 · 0 评论 -
从零开始学java(二十三)--多态和对象的转型
从零开始学java(二十三)--多态和对象的转型多态多态多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。 比如:同样是调用人的“休息”方法,张三是睡觉,李四是旅游,高淇老师是敲代码,数学教授是做数学题; 同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。多态的要点:多态是方法的多态,不是属性的多态(多态与属性无关)。多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。父类引用指向子类对象后,用该父原创 2020-09-30 00:05:02 · 200 阅读 · 0 评论 -
从零开始学java(二十二)--Java的封装,实现与使用细节JavaBean
从零开始学java(二十二)--Java的封装,实现与使用细节java的封装封装的实现——使用访问控制符public访问修饰符测试java的封装在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式原创 2020-09-29 08:46:54 · 124 阅读 · 0 评论 -
从零开始学java(二十一)--super父类对象引用和继承树的追溯问题
从零开始学java(二十)--super父类对象引用和继承树的追溯问题super关键字super和this的异同继承树追溯super关键字super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。若是构造方法的第一行代码没有显式的调用super(…)或者this(…);那么Java默认都会调用super(),含义是调用父类的无参数构造方法。这里的super()可以省略。super的三种使用方法:与原创 2020-09-25 10:55:36 · 403 阅读 · 0 评论 -
从零开始学java(二十)--Object类中的toString方法;;;;;“==”与equals方法
从零开始学java(二十)--Object类中的toString方法;;;;;“==”与equals方法Object类中的toString方法“==”与equals方法Object类中的toString方法Object类中定义有public String toString()方法,其返回值是 String 类型。Object类中toString方法的源码为:public String toString() { return getClass().getName() + "@" + Intege原创 2020-09-24 23:39:18 · 115 阅读 · 0 评论 -
从零开始学java(十八)--继承与instanceof运算符的使用
从零开始学java(十八)--继承与instanceof运算符的使用继承的实现继承的使用要点instanceof运算符的使用继承的实现继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels)。从英文字面意思理解,extends的意思是“扩展”。代码示例package Chapter_5;public class TestExtends { public static vo原创 2020-09-24 14:21:41 · 90 阅读 · 0 评论 -
从零开始学java(十七)--包,package与导入
从零开始学java(十七)--包,package与导入包和package导入类import静态导入包和package机制是Java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于文件夹对于文件的作用。--------------------------------------------------------------------------------------------我们通过package实现对类的管原创 2020-09-24 12:04:02 · 436 阅读 · 0 评论 -
从零开始学java(十六)--静态初始化块与参数传值机制
从零开始学java(十六)--静态初始化块与参数传值机制静态初始化块参数传值机制静态初始化块构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!类的初始化在内存中的方法区载入类的信息的时候,这时候静态初始化块的内容会开始执行。在静态初始化块中不能直接访问非static成员。非static成员从属于对象,在静态初始化块中,对象尚未成立,因此不能访问非static对象。注意事项静态初始化块执行顺序(学完继承再看这里):上溯到Object类,先执行Object的静态初始化块,再向下执行子类原创 2020-09-24 11:43:47 · 360 阅读 · 0 评论 -
从零开始学java(十五)--this和static关键字
从零开始学java(十五)--this和static关键字对象创建的过程this关键字static关键字对象创建的过程构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四步:1. 分配对象空间,并将对象成员变量初始化为0或空2. 执行属性值的显示初始化3. 执行构造方法4. 返回对象的地址给相关的变量---------------------------------------------原创 2020-09-23 09:39:28 · 157 阅读 · 0 评论 -
从零开始学java(十四)--构造方法
从零开始学java(十四)--构造方法构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。注意事项通过new关键字调用!!(也就是在创建对象时就默认调用)构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。如果我们没有定义构造器,则编译器会自动定义一个无参的原创 2020-09-23 08:34:57 · 95 阅读 · 0 评论 -
从零开始学java(十三)--面对对象的内存分析
从零开始学java(十三)--面对对象的内存分析class Computer { String brand; //品牌}public class SxtStu { // field int id; String sname; int age; Computer comp; void study() { System.out.println("我正在学习!使用我们的电脑,"+comp.brand); } SxtSt原创 2020-09-23 08:25:25 · 78 阅读 · 0 评论 -
从零开始学java(十二)--为对象定义类
从零开始学java(十二)--为对象定义类类的定义类声明成员变量的定义构造方法的定义成员方法的定义对象的状态,也称为特征或属性,是由具有当前值的数据域来表示的。如,员工对象具有数据域name和age,标识员工的属性。对象的行为,也称为动作,是由方法定义的。调用对象的一个方法就是要求对象完成一个动作。如,可以为矩形对象定义一个名为getArea()方法返回矩形的面积。类是组成java程序的基本要素,封装了一类对象的状态和行为,是这一类对象的原形。定义一个新的类,就创建了一种数据类型;实例化一个类就得原创 2020-09-06 16:14:30 · 337 阅读 · 0 评论 -
从零开始学java(十一)--面向对象的概念与基本特征
从零开始学java(十一)--语句块,方法,与递归语句块方法语句块语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。块确定了局部变量的作用域。块中的程序代码,作为一个整体,是要被一起执行的。块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明同名的变量。语句块可以使用外部的变量,而外部不能使用语句块中定义的变量,因为语句块中定义的变量作用域只限于语句块。public class Test19 { public static void main(String[] a原创 2020-09-06 15:10:54 · 347 阅读 · 0 评论 -
从零开始学java(八)--数据类型转换与简单键盘输入输出
从零开始学java(八)--数据类型转换与简单键盘输入输出自动类型转换强制类型转换基本类型转化时常见错误和问题简单的键盘输入输出自动类型转换自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。如图所示,黑色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。强制类型转换强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信原创 2020-09-06 09:54:57 · 123 阅读 · 0 评论 -
从零开始学java(七)--位,字符串连接符,条件运算符与运算符优先级
从零开始学java(七)--位,字符串,条件运算符与运算符优先级位运算符字符串连接符条件运算符运算符的优先级位运算符int a = 3*2*2;int b = 3<<2; //相当于:3*2*2;int c = 12/2/2;int d = 12>>2; //相当于12/2/2;注意事项&和|既是逻辑运算符,也是位运算符。如果两侧操作数都是boolean类型,就作为逻辑运算符。如果两侧的操作数是整数类型,就是位运算符。不要把“^”当做数学运算“乘方”,是原创 2020-09-05 14:48:10 · 381 阅读 · 0 评论 -
从零开始学java(六)--算数,赋值,关系,逻辑运算符
从零开始学java(六)--算数,赋值,关系,逻辑运算符运算符的分类算术运算符赋值及其扩展赋值运算符关系运算符逻辑运算符运算符的分类算术运算符算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。二元运算符的运算规则:整数运算:如果两个操作数有一个为Long, 则结果也为long。没有long时,结果为int。即使操作数全为short,byte,结果也是int。浮点运算:3. 如果两个操作数有原创 2020-09-05 14:36:46 · 232 阅读 · 0 评论 -
从零开始学java(五)--基本数据类型
从零开始学java(五)--基本数据类型基本数据类型整型变量/常量浮点型变量/常量字符型变量boolean型变量/常量基本数据类型Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类(reference data type)。整型变量/常量整型用于表示没有小数部分的数值,它允许是负数。整型的范围与运行Java代码的机器无关,这正是Java程序具有很强移植能力的原因之一。与此相反,C和C++程序需原创 2020-09-05 14:20:52 · 103 阅读 · 0 评论 -
从零开始学java(四)--变量常量
从零开始学java(四)--变量常量变量变量的声明变量的分类常量变量量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=3; 表示a变量的空间大小为4个字节。变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,原创 2020-09-05 13:53:49 · 102 阅读 · 0 评论 -
从零开始学java(三)--注释,标识符与关键字
从零开始学java(三)--注释,标识符与关键字注释标识符关键字/保留字注释单行注释:以"//“开头,”//"后面的单行内容均为注释多行注释:以“/”开头“/”结尾,在中间的内容未注释,注意多行注释不能嵌套使用文档注释:"/** 注释内容 */",注释包含一些说明性的文字及一些javadoc标签,后期写项目的时候,可以生成项目的API/** * Welcome类(我是文档注释) * @author 高淇 * @version 1.0 */public class Welcome原创 2020-09-05 11:41:19 · 228 阅读 · 0 评论 -
从零开始学java(二)--eclipse的简单尝试
从零开始学java(二)--eclipse的简单尝试一.在eclipse中创建java项目二.使用eclipse开发和运行java程序一.在eclipse中创建java项目在界面左侧的“Package Explorer”视图中右键单击,在快捷菜单中依次选择new——> Java Project,开始新建Java项目。输入项目名称MyPro01,点击Finish 完成即可。新建项目完成,项目结构如图所示。其中的src文件夹用于存放源代码。显示JDK版本是JavaSE-1.8。二.使用e转载 2020-09-04 22:27:05 · 146 阅读 · 0 评论 -
从零开始学java(一)--java基础知识
从零开始学java(一)--java基础知识一.java的三个版本二.JDK,JRE和JVM三.Java的运行机制四.第一个java程序:HelloWorld三.第一个程序的常见错误四.第一个程序的总结五.常用的java开发工具一.java的三个版本JAVASE(Java Standard Edition):标准版,定位在个人计算机上的应用,提供了丰富的API来开发一般个人计算机上的程序,包括用户接口AWT以及Swing,网络功能与国际化,图像处理能力以及输入输出等。JAVAEE(Java Ente原创 2020-09-04 22:14:32 · 508 阅读 · 2 评论