java基础学习笔记
一些java的编程基础知识
无忧乡
男人,最怕一事无成的温柔,最怕一时贪欢忘记了前路漫漫
展开
-
Java之Junit单元测试(IDEA)
一、测试分类测试大体分为两类:即黑盒测试与白盒测试黑盒测试:不清楚程序内部实现,也无需写代码,只需要给出测试的输入值,看程序是否能够输出期望的值白盒测试:清楚程序内部实现,需要写代码来测试程序,并且关注程序具体的执行流程Junit就是白盒测试的一种二、Junit1.使用main方法测试的不足之处本人在入门java阶段,十分喜欢使用main方法作为测试方法,但是main方法...原创 2020-03-25 12:32:09 · 851 阅读 · 0 评论 -
Java常用API之Math
Java提供了Math工具类来完成稍微复杂一些的数学运算,Math是一个工具类,它的构造器被定义成privated的,因此无法创建Math类的对象:Math类中所有方法都是静态方法,直接通过类名调用。Math类除了提供大量静态方法之外,还提供了两个静态Field: PI 和 E,即π和e。Math.PI; //常量π//取整,返回小于目标数的最大整数Math.floor(-1.2); //...原创 2020-03-09 16:56:54 · 112 阅读 · 0 评论 -
Java之枚举类
一、枚举类的概念在某些情况下,一个类的对象是有限且固定的,比如季节类,它只有4个对象;再比如性别类,它只有两个对象。这种实例有限且固定的类,在Java中被称为枚举类。枚举类实际上是一种特殊的类,它由关键字enum定义(与class、interface关键字地位相同),可以有自己的Field、方法、可以实现一个或者多个接口,也可以定义自己的构造器(只能是私有的)。一个Java源文件中最多只能定...原创 2020-03-09 16:28:00 · 116 阅读 · 0 评论 -
Java之异常详解
一、异常的概念异常就是在程序运行过程中所发生的的不正常的事件,它会中断正在运行的程序。在生活中,我们会根据不同的异常进行相应的处理,而不会就此中断我们的生活。二、异常处理机制Java的异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现将"业务功能实现代码"和“错误处理代码”分离,提供更好的可读...原创 2020-03-09 10:16:07 · 238 阅读 · 0 评论 -
Java内部类
一、内部类概念在java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者称为外部类Inner Class 一般用在定义它的类或者语句块之内,在外部引用它时必须给出完整的名称Inner Class的名字不能与包含它的类名相同Inner Class可以使用外部类的私有数据,因为它是外部类的成员,同一个类的成员之间可相互访问。二、内部类的分类内部类可以分为三...原创 2020-03-04 21:24:13 · 60 阅读 · 0 评论 -
JavaBean
一、JavaBean的概念JavaBean是一种逻辑上的定义,是一种约定俗成的规矩。所谓JavaBean,是指符合如下标准的Java类:类是公共的有一个无参的公共的构造器(可以是默认的)属性一般都是私有的,且有对应的get,set方法二、JavaBean的用处用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者...原创 2020-03-04 18:28:36 · 79 阅读 · 0 评论 -
31.Java之接口扩展
欢迎转载,但请标明为转载,否则必究其责一、针对接口编程在java中有一种编程模式是针对接口编程这时接口可以看作是一种约定,这体现在接口名称和注释上,有些接口只有名称,方法的实现方式要通过注释来约定;也可以将其视作一种能力,这体现在接口的方法上。二、针对接口编程的好处可以被多继承设计和实现完全分离更自然的使用多态更容易搭建程序框架更容易更换实现三、接口的一些特性扩展1...原创 2020-03-04 17:23:05 · 752 阅读 · 1 评论 -
30.Java之接口基础
一、接口的概念有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承,有了接口,就可以得到多重继承的效果。接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法实现。二、实现接口类类实现单个接口class Subclass implements inter...原创 2020-03-04 14:25:07 · 188 阅读 · 0 评论 -
24.Java之super关键字
Java之super关键字一、super的基本知识super关键字应用于有父类的子类当中,同this用法相似,不同的是this代表本类对象的引用,super代表父类对象的引用。super一般有三种用法:调用父类的构造器访问父类属性访问父类成员方法二、super调用父类构造器(重难点)子类是无法继承父类的构造方法,所以对子类进行初始化时(new实例),子类中所有...原创 2020-02-19 22:50:19 · 92 阅读 · 0 评论 -
28.Java之抽象类
1. 抽象类概述(以下内容可能有点烦 但是通俗易懂 简直舒服)我们创建一个动物类,并且在这个类中创建动物对象,但是当你提到动物类,你并不知道我说的是什么动物,只有看到了具体的动物,你才知道这是什么动物,所以说动物本身并不是一个具体的事物,而是一个抽象的事物。只有真正的猫,狗才是具体的动物,同理我们也可以推理不同的动物,他们的行为习惯应该是不一样的,所以我们不应该在动物类中给出具体体现,而是给出...转载 2020-02-18 14:58:38 · 116 阅读 · 0 评论 -
27.Java之Object类
一、什么是Object类Object类是一个特殊的类,它是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承 Object类。因此,Object类是 Java 类层中的最高层类,是所有类的超类。换句话说,Java 中任何一个类都是它的子类。由于所有的类都是由Object类衍生出来的,所以 Object类中的方法适用于所有类。public clas...转载 2020-02-18 01:15:10 · 93 阅读 · 0 评论 -
26.Java之向上转型与向下转型
Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象。什么叫父类引用指向子类对象?从 2 个名词开始说起:向上转型(upcasting) 、向下转型(downcasting)。举个例子:有2个类,Father 是父类,Son 类继承自 Father。第 1 个例子:Father f1 = new Son(); // 这就叫 upcasting (...转载 2020-02-17 23:29:53 · 77 阅读 · 0 评论 -
23.Java之方法重写
一、概念Override,子类继承父类方法时,如果父类中的某一个方法不能满足子类的需求时,子类可以重新定义该方法的内容与功能来满足子类的需求,这便是方法重写。二、语法规则1.子类与父类要重写的方法名必须相同2.方法的参数相同(数量、类型、顺序)3.子类中的方法的访问级别不能低于父类中该方法 的访问级别(举例:父类方法的级别是protected,那么子类重写该方法,其级别必须是prote...原创 2020-02-16 23:35:57 · 66 阅读 · 0 评论 -
22.Java之封装
一、封装的概念将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作与访问。封装也是面对对象的三大特征之一。二、封装的好处1.只允许通过规定的方法访问数据这样方便编写者写方法控制用户的输入,不合理的输入数据排除在外,做统一处理2.隐藏类的实现细节,方便修改将实现细节隐藏在类的内部,外部类通过那些特定的方法与这个类进行交互,这样即使在类中做...原创 2020-02-12 17:49:17 · 76 阅读 · 0 评论 -
21.Java之访问控制修饰符
一、访问控制修饰符的基本概念在java中,有4种访问控制修饰符可以放在方法与变量前,部分访问控制修饰符也可以放在类前作用是控制代码的访问权限二、访问控制修饰符的控制范围1.公共访问控制修饰符(public)用来修饰类、接口、变量、方法。被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问。如果几个相互访问的 public 类分布在不同的包中,则需...原创 2020-02-12 13:03:13 · 1440 阅读 · 0 评论 -
16.Java之方法重载
一、方法重载的概念方法重载是指在同一个类中,有相同名称 但参数不同 的方法。参数不同:数量不同数据类型不同顺序不同二、一般方法的重载public class Demo{ void func() //方法1 { System.out.println("1"); } void func(int num) //方...原创 2020-02-11 23:43:06 · 160 阅读 · 0 评论 -
20.Java类的初始化顺序
一、类的组成1.变量实例变量(成员变量)类变量(静态变量)2.方法实例方法类方法(静态方法)构造方法3.初始化代码块实例初始化块静态初始化块4.内部类(后面讲)二、单个类的初始化顺序1.例子//Son.javapublic class Son{ int num1 = 10; //实例变量 static int num...原创 2020-02-10 16:42:41 · 430 阅读 · 0 评论 -
19.Java之继承
一、继承的概念继承是OOP(面向对象)的特征之一,它是从已有的类(父类或称超类)中派生出新的类(子类),子类会自动拥有父类的属性和方法,并且之类可以扩展新的属性和方法。二、为什么使用继承这是两张UML图,对于这两个不同的类存在大量代码的重复,继承就是为了减少代码量,将重复代码抽取到父类中。使用继承优化设计后:将公共的一些属性和方法提取到父类中,每一个子类只需要编写子类中与父类不同的...原创 2020-02-09 22:13:26 · 94 阅读 · 0 评论 -
18.Java之this关键字
创建对象的过程创建对象的过程分为四步:分配对象空间,并将对象的成员变量初始化为0或空执行属性的显式初始化执行构造方法返回对象的地址给相关的变量this的本质this的本质就是“创建好的对象的地址”,由于在构造方法调用前,对象已经创建,因此,在构造方法中也可以使用this代表“当前对象” 注意: this不能用于static方法中调用构造器public clas...转载 2020-02-06 22:38:07 · 81 阅读 · 0 评论 -
17.2Java之static关键字(补充)
一、static基本描述对于关键字static ,大家应该不会陌生,因为一直编写: public static void main(String args[]) {...}那static表示什么呢?static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是要注意一点:Java语言中没有全局变量的概念。 二、使用static定义属性我...转载 2020-02-06 22:02:34 · 70 阅读 · 0 评论 -
17.Java之static关键字
static关键字在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。这里要强调一下:static修饰的成员变量和方法,从属于类普通变量和方法从属于对象静态方法不能调用非静态成员,编译会报错static关键字的用途一句话描述就是:方便在没有创建对象的情况下进行调用(方法/变量)。显然,被static关键字...转载 2020-02-06 21:55:20 · 60 阅读 · 0 评论 -
15.Java之包装类
一、基本数据类型的局限在java中一切皆对象,但是8种基本数据类型除外,这就导致了一些问题。基本数据类型与引用数据类型不可相互赋值,不可相互比较有些java类只能处理引用数据类型二、什么是包装类Java在java.lang包中提供了8个类代表8种基本数据类型图片1注1:java.lang是Java的核心包,使用其中的类可以不需要显示引用,eg:String注2:包装类...原创 2020-02-11 14:29:25 · 139 阅读 · 0 评论 -
14.Java之方法的参数传递
Java之方法的参数传递方法的参数传递主要有三种类型:基本数据类型的参数传递引用数据类型的参数传递String类型的参数传递一、基本数据类型的参数传递public class Demo{ void func1(int i) // step3 { i++; //step4 System.out.println(i);...原创 2020-02-08 11:11:28 · 101 阅读 · 0 评论 -
13.Java之可变长度参数详解
Java之可变长度参数详解一、概念与语法形式可变长度参数概念:允许方法接受个数不定的参数。语法形式:(1) 在参数的数据类型后使用三个点 …(2) 注意:只允许出现一个可变长度参数可变长度参数要出现在参数列表的最后二、为什么要使用可变长度参数public class student{ int getScore(int num1,int num2,int n...原创 2020-02-07 19:36:17 · 365 阅读 · 0 评论 -
12.Java String类详解
String类是一个字符串类型的类,使用“XXXX”定义的内容都是字符串,虽然这个类在使用上有一些特殊,但是String本身是一个类。一、String的实例化两种方式1、直接赋值实例化:String StringName= "xxx";以上是String对象的直接赋值,以上的代码并没有使用关键字new进行。String类也是类,所以也有构造方法。2、使用构造方法实例化:public...转载 2020-02-06 16:39:58 · 105 阅读 · 0 评论 -
11.基本数据类型与引用数据类型的存储方式
基本数据类型与引用数据类型的存储方式在JVM(java虚拟机)中,数据类型主要存储在虚拟机栈(stack)和堆(heap)中。1.JVM中的栈和堆在虚拟机栈中存放了各种基本数据类型,以及对象的引用(不包括内存)。在堆中存放了各种对象的实例,以及数组和字符串(数组和字符串其实也是引用数据类型)。示例图:注:对象的引用(引用数据类型变量名)实际上存储的是对象在堆中分配空间的...原创 2020-02-06 15:51:24 · 946 阅读 · 0 评论 -
10.Java类和对象 详解(二)
一、面向对象的封装性封装(encapsulation)又叫隐藏实现(Hiding the implementation)。就是只公开代码单元的对外接口,而隐藏其具体实现。比如手机,手机的键盘,屏幕,听筒等,就是其对外接口。你只需要知道如何按键就可以使用手机,而不需要了解手机内部的电路是如何工作的。封装机制就像手机一样只将对外接口暴露,而不需要用户去了解其内部实现。在研究封装性之前,我们先来看一...转载 2020-02-06 11:39:09 · 114 阅读 · 0 评论 -
9.Java类和对象 详解(一)
一、面向对象简述面向对象是一种现在最为流行的程序设计方法,几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM...转载 2020-02-06 11:08:05 · 103 阅读 · 0 评论 -
8.Java之数组
Java之数组一、一维数组1.什么是数组数据是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。★声明一个变量就是在内存中划出一块合适的空间。★声明一个数组变量就是在内存中划出一块连续的空间2.数组的特点存放相同数据类型内存中连续分配相同大小的空间大小一旦确定将不可扩容或缩容检索元素速度快,而添加删除元素速度慢使用下标访...原创 2020-02-06 09:41:59 · 152 阅读 · 0 评论 -
7.Java之控制流程语句
Java之控制流程语句一、条件语句(1)if语句1.基本的if结构(可以没有else)2.if-else结构3.多重条件结构,if-else if - else …//case1if(条件){ //语句}//case2if(条件){ //语句 }else{ //语句}//case3if(条件1){ //语句 }else if(条件...原创 2020-01-27 11:48:23 · 103 阅读 · 0 评论 -
6.Java之输入与输出
Java之输入与输出这里只是简单的文本的输入与输出,文件的输入与输出会放到后面写。输入(1) 首先需要构造一个Scanner对象(后面会讲),并与“标准输入流” System.in关联Scanner in = new Scanner(System.in);(2) 使用Scanner类的各种方法实现输入操作Scanner in = new Scanner(System.in);St...原创 2020-01-27 00:47:27 · 134 阅读 · 0 评论 -
String 的不可变性
前言在 Java 开发中 String (字符串)对象是我们使用最频繁的对象,也是很重要的对象。正是使用得如此频繁,String 在实现层面上不断进行优化,从 Java6 到 Java7,再到 Java9 的新实现 ,都是为了提升 String 对象的性能,而其中不变的是 String 所生俱来的特性:不可变。本文主要聊一聊 String 的不可变,以及为什么存在的。什么是 Stri...转载 2020-01-26 19:33:01 · 460 阅读 · 0 评论 -
5.Java之字符串
Java之字符串一、字符串的定义每个用双引号括起来的字符串都是String类的一个实例。字符串有两种定义方式: 1. String s = “hello world”; //常用 2. String s = new String(“hello world”);二、String的不可变性当声明String类型(引用数据类型)变量并赋值后,对字符串的修改不会改变原来的内存...原创 2020-01-26 21:40:48 · 109 阅读 · 0 评论 -
4.Java之运算符
Java之运算符一、算术与赋值运算符1.赋值运算符: =2.算术运算符:+ - * / %(取余)对于除法 /:(1)当参与 / 运算的两个操作数都为整数时,表示整数除法;否则,表示浮点除法。例如,15/2 等于 7, 15.0/2 等于7.5(2)整数被除0将会产生一个异常,而浮点数被除0将会得到无穷大或者NAN的结果。对于加法 +: 除了用作操作数运算,还可以用于字符串拼接(...原创 2020-01-26 17:09:29 · 97 阅读 · 0 评论 -
3.Java之变量与数据类型
Java之变量与数据类型一、Java变量(从内存去理解)在计算机中,每一个数据都需要在内存中开辟存储空间,将数据存放在内存中。通过变量名可以快速在内存中找到它所存储的数据。int num = 100;num = num - 10;如上所示: 1. 声明变量 就是在内存中申请了一块空间 2. 为变量赋值 就是将数据存入内存空间 3. 使用变量 就是从内存中将值取出...原创 2020-01-26 15:52:35 · 107 阅读 · 0 评论 -
2.Java最基本框架和注释
Java最基本框架public class HelloWorld{ public static void main(String[] args) { System.out.println("HelloWorld"); //System.out.print("HelloWorld"); /* *第一种println输入语句...原创 2020-01-25 21:52:11 · 116 阅读 · 0 评论 -
1.使用Eclipse创建java文件
使用Eclipse创建java文件1.新建项目java project选择File->New->Java Project编辑Project name,这里命名为Day1编辑Location,选择java代码空间Project layout 选择 Use project folder as root for sources and class files...原创 2020-02-04 16:51:24 · 8503 阅读 · 0 评论 -
0.Eclipse的安装与配置
1.Eclipse的安装与配置前提:需要下载并安装好JDK一、Eclipse的安装1. 百度搜索Eclipse 或 直接打开网址https://www.eclipse.org/downloads/进入官网2. 点击下载最新版本64位Eclipse IDE3. 如果浏览器未响应下载,点击图中的click here完成响应4. 下载完成,启动exe文件,选择安装第二个选项(En...原创 2020-01-25 16:29:11 · 127 阅读 · 0 评论