
JAVA基础
叫我小菲菲
有活干、有饭吃、有人等、有家回,这就是幸福!
展开
-
认识spring及环境搭建
一、spring是什么? spring是一个开源框架,为简化企业级应用而生,使用spring可以使简单的javabean实现以前只有ejb才能实现的功能 spring是一个IOC(DI)和AOP容器框架具体描述spring:1.轻量级:spring是非侵入性,基于spring开发应用的对象可以不依赖springAPI2.依赖注入:(dependency in...原创 2019-11-09 21:33:43 · 234 阅读 · 0 评论 -
类的初始化过程
new Zi ( ) ;1.加载子类和父类到内存中2.定义变量num;给变量num赋初始值,比如int的是0,string类型的是null等3.调用子类构造器Zi(),子类构造第一个操作调用父类构造器(默认的super语句)4.调用父类构造器Fu()5.父类构造器中调用show()方法,子类重写了父类的方法,会调用子类的6. 给变量num赋值9;package...原创 2019-11-04 21:16:51 · 234 阅读 · 1 评论 -
异常
一、定义 异常:在运行时期发生的不正常情况;在java中用类的形式对不正常情况进行描述和封装对象;描述不正常的类就称之为异常类,其实异常就是java通过面向对象的思想将问题封装成了对象。用异常类对其进行描述;不同的问题用不同的类进行具体描述,比如角标越界,空指针等;以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性;二、异常体系问题很多描...原创 2019-11-04 20:51:56 · 396 阅读 · 0 评论 -
单例设计模式
单例模式:确保一个类在内存中最多只有一个实例,并提供一个全局访问点一、单例模式必备条件:1.构造器私有化,杜绝外界使用new创建对象2.获取单例对象的静态方法,多个线程来访问也是返回一个实例二、使用场景有些对象只需要创建一个,线程池、缓存、硬件设备;比如对于多个程序使用同一个配置信息对象时,就需要确保该对象的唯一性。如何保证唯一性:1)不允许其他程序用new创建该...原创 2019-11-01 20:36:36 · 291 阅读 · 0 评论 -
IO流-File对象-递归
递归1. 什么是递归?函数自身直接或间接的调用到了自身一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关。这时可以用递归来解决问题。简单示例:public class DiGuiDemo { public static void main(String[] args) { show(); } public static void show(){ m原创 2017-03-10 17:02:09 · 313 阅读 · 0 评论 -
IO流-File-判断-重命名-获取根目录下容量
3. 判断代码如下: public class test1 { public static void main(String[] args) throws IOException { isDemo(); } public static void isDemo() throws IOException{ File f=new File("e:\\a.txt"); f.cr原创 2017-03-10 16:43:48 · 392 阅读 · 0 评论 -
IO流-File类-文件及目录的创建和删除
1. 文件的创建与删除createNewFile()和delete()·和输出流不同,如果文件不存在,则创建,若文件存在,则不创建返回falseBoolean返回类型,创建成功为真否则为假代码如下:public class test1 { public static void main(String[] args) throws IOException { construct原创 2017-03-10 15:22:19 · 1226 阅读 · 0 评论 -
IO流—File类-获取
一、file构造函数字段1. 用来将文件或者文件夹封装成对象2. 方便对文件与文件夹的属性信息进行操作3. File对象可以作为参数传递给流的构造函数 二、file对象的常见函数-获取1. 获取1)获取文件名称2)获取文件路径3)获取文件大小4)获取文件修改时间public class ReadKey { public static void main原创 2017-03-09 17:13:25 · 386 阅读 · 0 评论 -
IO流—键盘录入
1. 读取一个键盘录入的数据,并在打印在控制台上,每次只能读取一个字节2. 键盘本身就是一个标准的输入设备3. 对于java而言,对于这种输入设备都有对应的对象;4. Read()方法时阻塞方法,如果不输入就一直等待原创 2017-03-09 17:12:50 · 369 阅读 · 0 评论 -
继承—子父类中成员函数的特点-(方法重写)覆盖
继承—子父类中成员函数的特点-覆盖一、成员函数1. 子类如何查找成员函数·当子类和父类中出现的成员函数相同(返回值类型,函数名相同,参数列表相同)时,会运行子类的函数;这种现象,成为覆盖操作。这是函数在子父类中的特性。·当子类调用的函数在子类中不存在时,就会去父类中查找。2. 函数的两个特性:1). 重载:出现在同一类中2). 覆盖:出现在子...原创 2017-03-09 17:04:05 · 732 阅读 · 0 评论 -
继承—子父类中的构造函数-子类的实例化过程
子父类中的构造函数的特点1. 在子类构造对象时,发现访问子类构造函数时,父类也运行了。为什么?原因是:在子类的构造函数中第一行又一个默认的隐式语句,super(); 2. 子类的实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。若想访问父类中的有参构造函数,可以指定super(参数)这种形式来调用父类中的有参构造函数原创 2017-03-08 19:39:53 · 793 阅读 · 0 评论 -
Static(静态)关键字总结
Static(静态)关键字一、static关键字特点1. static是个修饰符,用于修饰成员(成员变量和成员函数)2. Static修饰的成员被所有的对象所共享3. Static 优先于对象存在,因为static成员随着类的加载就已经存在了4. Static修饰的成员多了一种调用方式,可以直接被类名所调用,调用格式类名.静态成员5. Static修饰的数据是共享数据,对象原创 2017-03-08 16:54:09 · 1173 阅读 · 0 评论 -
this关键字的使用
This关键字一、当成员变量和局部变量重名,可以用关键字this来区分(this代表当前对象)官方解释:this就是所在函数所属对象的应用白话解释:哪个对象调用了this所在的函数,this就代表哪个对象 可理解为:局部的值赋给了对象的color二、This可用于在构造函数中调用其他构造函数注意:1. 只能定义在构造函数的首行,因为初始化动作要先执行;2. 留有原创 2017-03-06 21:26:29 · 382 阅读 · 0 评论 -
构造函数总结,构造函数和一般函数
一、构造函数:构建创造对象时调用的函数。作用: 可以给对象进行初始化创建对象都必须要通过构造函数初始化1. 一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数。2. 如果在一个类中定义了指定的构造函数,那么类中的默认构造函数就没有了3. 一般哈数和构造函数区别:1)构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化。一般函数:对原创 2017-03-06 15:38:29 · 455 阅读 · 0 评论 -
引用数据类型参数传递
引用数据类型参数传递说明:1. 执行main方法,开辟栈空间,d2. new时开辟堆内存,初始化x=0,赋值x=3,把x=3赋给d;3. d.x=9赋给再次赋给d;4. show方法开辟栈空间,x=4赋给d;show方法结束,弹出栈空间;5. 执行输出语句时,输出的主函数中的d=4原创 2017-03-06 14:36:35 · 439 阅读 · 0 评论 -
面向对象(类类型参数)
通过上面的代码可以发现,如果要创建多个不同的车只改变颜色和车轮数,就出先出现代码多余的情况,为了提供复用性,改造如下:把Car作为参数传入—类类型变量参数且一定指向对象否则为空;原创 2017-03-06 14:05:27 · 378 阅读 · 0 评论 -
包装类
一、了解包装类在Java中一直提倡一个概念:一切皆对象,那么结合object的特点实际上就非常容易理解(在全部都是对象时,Object才可以达到统一参数的目的),但是在这之中就出现了一个不和谐的地方:基本数据类型不是对象,所以最早时部分人把基本数据类型做一个简单包装。类似如下结构: 以上代码简单,但是比较麻烦,针对基本数据类型给出了系统包装类:int(Integer),char(原创 2017-02-20 14:40:53 · 449 阅读 · 0 评论 -
Object类(参数统一)
在定义一个类的时候,如果此类没有明确的继承一个类,则将默认继承object类,即:所有的类都是object子类;1. 下面两个类的定义结构完全相同 范例1:利用object类接受所有 在Object类里定义了许多的方法,那么其中在用户定义简单Java类的时候从标准来讲应该履行object类之中的三个方法:1)取得对象信息:public String toStri原创 2017-02-14 11:18:06 · 1017 阅读 · 0 评论 -
匿名内部类(理解)
匿名内部类是在抽象类和接口基础上建立起来的一种结构,必须以抽象类和接口为主1. 产生原因 本程序为A接口定义了一个B子类,而后在主方法之中,通过子类向上转型实现了接口对象的实例化操作,但是来思考一个问题,如果现在的子类B只是用一次,还有必要定义一个类吗?范例1:匿名内部类的使用原创 2017-02-13 11:32:29 · 299 阅读 · 0 评论 -
抽象类与接口区别
接口和抽象类是整个项目之中最大的组成灵魂,下面说说区别NO区别抽象类接口1关键字abstract class()Interface 接口名称()2组成普通方法、构造方法、抽象方法、常量、变量全局常量、抽象方法3原创 2017-02-13 11:16:59 · 272 阅读 · 0 评论 -
接口
一、基本概念接口:类的内部只存在全局常量和抽象方法接口就是全局常量和抽象方法的集合,使用interface关键字定义接口范例1:定义接口 定义的关键字是有区别的,但是他的常量和抽象方法与之前没有区别,对于接口里面有抽象方法,所以一定无法使用关键字new进行接口对象的实例化;1. 接口的使用原则:1)接口必须有子类,子类使用implements实现接口,一个子原创 2017-02-10 18:06:11 · 359 阅读 · 0 评论 -
抽象类(核心)
在以后的的开发中,一个类不要继承一个已经实现好的类,只能继承抽象类或实现接口;一、抽象类基本概念之前所学的都输于普通类,普通类的特征是:类的结构很完整,而且可以直接产生实例化并使用。在普通类之中所定义的方法都是具备方法体的“{ }”,但若现在一个类中的某些方法希望强制子类进行覆写,则可以将其定义为抽象方法,抽象方法使用“abstract”关键字声明,而且声明时没有方法体,而包含抽象方法的类原创 2017-02-10 15:36:56 · 346 阅读 · 0 评论 -
多态性(重点)
多态是面向对象的三大特征,今天只是所写的内容只是一个开头,对多态的理解以及多态所带来的形式。如果说继承是为了解决代码重用的问题,那么多态就是为了解决参数的统一问题;而且多态一定要结合继承关系后才可使用。一、理解多态实例1: 此时student子类覆写了person父类的print方法,同时实例化的student类对象,所以一定调用被覆写过的方法。所谓的多态性指的原创 2017-02-09 16:21:46 · 451 阅读 · 1 评论 -
final字段(重点)
在Java之中final被称为终结器,指完结,用于定义类、方法、常量。1. 使用final定义的类不能有子类,太监类;实例1:错误 2. 使用final定义的方法不能被子类所覆盖实例2:错误 3. 使用final定义的变量就称为常量,常量必须使用final定义,而且声明时必须设置好内容 不能修改; 若在开发中使用了“public static fina原创 2017-02-09 13:57:36 · 753 阅读 · 0 评论 -
覆写(重点)
如果子类中定义了和父类相同的方法名称时,就称为“覆写”;一、方法的覆写(核心)范例1:实现覆写 结论:子类定义了和父类的方法名称相同,参数相同,返回值相同的方法后,表示覆写了父类中的方法,而当实例化的是子类对象,所调用的方法一定是被子类覆写的方法;范例2: 有了继承概念后对于this和super的使用一定要清楚:1)this:表示先从本类查找,如果本原创 2017-02-08 18:08:10 · 597 阅读 · 0 评论 -
继承
继承性是面向对象的第二特征,可以更好的解决参数统一的问题一、使用简单java类的开发的代码1. Person类定义 2. Student类定义 上面的明显的问题代码出现了重复的情况,而从现实来讲学生一定是人,但是学生和人相比,学生要比人表现的更加具体,人的范围更加广泛;二、继承的使用1. 在Java中可以使用extends关键字来实现继承的关系,但是严格来讲exte原创 2017-02-08 16:25:55 · 262 阅读 · 0 评论 -
内部类(重点)
内部类在开发中不是首要选择,但是一定会出现,现在先学习语法和使用;一、内部类的基本概念所谓的内部类指的是在一个类的内部继续定义类的结构所形成的代码形式范例1:内部类访问外部类 范例2:外部类访问内部类 在定义内部类时会发现问题:类的组成结构为属性和方法两个部分,但是现在有多处一个类。结论:内部类的缺点:破坏了程序的结构。内部类的优点:内部原创 2017-02-07 18:15:21 · 399 阅读 · 0 评论 -
代码块(了解看懂即可)
在程序中使用“{ }”声明的代码部分就称为代码块,而根据代码块声明的关键字以及位置的不同,代码一共分为四种:普通代码块、构造块、静态块、同步块;一、普通代码块 改造为: 一般使用普通代码块是为了方便某一个方法的编写,避免了变量重复的问题;二、构造块如果把一个代码块卸载了类之中,则此代码块称为构造块; 结论:构造块优先于构造方法执行,而且每当有实例化对象产生的原创 2017-02-07 16:34:36 · 369 阅读 · 0 评论 -
static关键字
在Java里面,static可以定义属性、方法。一、使用static定义属性写一个程序要求定义出一个表示所有清华大学学校的学生信息,那么就证明学生类里面需要提供一个学校的信息,表示所在的学校,按照之前的内容,代码如下: 此时每一个对象之中都占用一个“school”属性,而且这些属性只有通过student类产生的对象,都应该是相同的那么就是说现在student类产生了10w个对原创 2017-02-06 17:56:24 · 307 阅读 · 0 评论 -
第二个代码模型:数据表与简单Java类映射
第二个代码模型:数据表与简单Java类映射(核心)题目要求:使用emp表(eno,ename,job,sal,comm,mgr,dno)和dept(dno,dname,loc)进行操作,要求可以实现如下功能:1:可以输出部门的完整信息,同事输出部门之中所有雇员以及雇员直接领导的信息;2:可以根据一个而雇员找到雇员的领导信息和所在的部门信息本程序中有两个关联的对象关系:关系1原创 2017-02-06 12:42:57 · 483 阅读 · 0 评论 -
面向对象-第一个代码模型
第一个代码模型:简单Java类编写(核心)所谓简单Java类,只包含了最基本的属性与属性的设置和取得功能,在日后开发中都是基于简单Java类的应用,本次给出简单Java类开发的基本原则1.类名称必须有意义,并且可以明确表示出某一类事物,例如:学生,老师,工人,光盘;2.类之中的属性必须使用private封装,而且所有的属性必须编写相应的setter、getter方法;3.类之中可以原创 2017-02-06 10:33:29 · 307 阅读 · 0 评论 -
匿名对象
匿名对象1.之前使用的都是有名的对象,例如发现对象的实例化格式:类名称 对象=new 类名称();Person p=new Person();2.何为匿名对象:对象的名字保存在栈内存之中,而我们调用对象名称的时候实际上调用的都是堆内存的操作;所以堆内存是我们真正有用的,那么所谓的匿名对象就是指开辟了堆内存空间,但是没有栈内存指向的对象;使用匿名对象范例一:原创 2017-02-05 21:30:39 · 298 阅读 · 0 评论 -
封装性
封装是面向对象中第一主要特征,其主要的意义在于类内部的操作对外不可见,解决安全隐患;可以使用private关键字定义属性;对于private属性而言外部要对其进行操作需要通过setter和getter方法; Setter:所有的检查操作一定要在设置上完成(在入口出处检查);开发原则:以后只要是类之中的属性永远都要使用private封装,封装之后的属性一定要编写set原创 2017-02-05 21:12:34 · 266 阅读 · 0 评论 -
this关键字
this关键字一、了解this用处this:在程序里面,使用this可以访问本类中的属性,方法,表示出当前对象1.使用this访问属性 但是以上的程序里面有一点不是很好,在构造方法上 构造方法的主要目的是为了类之中的name,age两个属性初始化,但是构造方法里面参数的名字并不清楚。既然目的是为属性传递数据,那么最好将参数名称和属性名称保持一致改造如下: 如原创 2017-02-05 18:04:29 · 365 阅读 · 0 评论 -
Java的类与对象
类与对象面向对象编程:OOP对象:用来描述客观事物的一个实体,由一组属性和方法构成;一、对象的特征1.对象的特征——属性(也叫成员变量)属性:对象具有的各种特征;名词2.对象的特征——方法方法:对象执行的操作;动词二、类1.从对象抽象出的类,抽取对象的共同特征(属性和方法)2.类是模子,定义对象将会拥有的特征(属性)和行为(方法);3.类是对象的类型是引原创 2017-02-03 11:31:37 · 317 阅读 · 0 评论 -
类的无参方法
类的无参方法一、如何定义类的方法类的方法定义类的某种行为(或功能)1.方法的定义:方法的名称,方法返回值的数据类型,方法的主体; 2.方法的返回值两种情况1)若方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型;语法:return 表达式; 作用:跳出方法,返回结果给调用者 2)若方法没有返回值,返回值类型为void;原创 2017-02-03 14:20:52 · 835 阅读 · 0 评论 -
String类和StringBuffer常用方法
String类和StringBuffer常用方法1.值类型:byte short int long float double boolean char不算2.引用类型:自定义类,String类,数组一、String类介绍1.String类位于java.lang包中,具有丰富的方法计算字符串的长度,比较字符串,连接字符串,提取字符串...原创 2017-02-04 14:02:14 · 1202 阅读 · 0 评论 -
JDK环境变量配置
JDK安装与环境变量配置JDK.8.0_40Windows7步骤:P_1:安装JDK选择安装的目录,安装过程中会出现两次安装提示。第一次安装JDK,第二次安装jre。建议两个都安装在同一个Java文件夹中的不同文件夹中(不能都放在Java文件夹的根目录下,jdk和jre安装在同一个文件夹会出错) P_2:安装jdk随意选择目录,只需把默认的安装目录\java之前的目录修改即原创 2017-01-15 21:07:04 · 3452 阅读 · 0 评论 -
方法的重载(OverLord)与构造方法重载(constructor)
一、了解方法重载1.方法的重载:是指一个类中名字相同,参数不同(类型不同,或个数不同)。调用时会根 据不同的参数列表选择对应的方法注意:返回值不同不构成重载 二、构造方法的重载构造方法:与类重名没有返回值构造方法重载:与普通方法一样,构造方法也可以重载原创 2017-02-04 16:41:48 · 951 阅读 · 0 评论 -
Java变量、数据类型
一、变量1.变量:一个数据存储空间的表示2.使用变量的步骤a) 声明变量:根据类型开辟空间 b) 赋值:将数据存入空间c) 使用变量:取出数据使用3.例子 变量命名规则:由字母,数字,下划线及美元符号构成,不能以数字开头,不能使用关键字;首字母小写后面的大写myName;二、基本数据类型 一般情况下,double最常用;float原创 2017-01-23 11:14:52 · 334 阅读 · 0 评论