Java基础
闭关学习ing
吾尝终日而思矣,不如须臾之所学也!
展开
-
JAVA特性之封装
封装的概念是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,并尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他对象只能通过包裹在数据外面的已经授权的操作来与这个封装的对象进行交流和交互。也就是说用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。对于封装而言,一...原创 2019-03-22 10:43:33 · 478 阅读 · 0 评论 -
抽象类和接口的区别
从语法层次上 从设计层次上抽象层次不同。抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。跨域不同。抽象类跨域的是具有相似特点的类,而接口却可以跨域不同的类。抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可;但是接口不同,实现它的子类可以不存在任何关系,共同之处。例如猫、狗可以抽象...原创 2019-03-24 16:38:38 · 282 阅读 · 0 评论 -
assert断言
描述 是指程序执行到某行之后,断定其结果一定是我预期的结果,故在JDK 1.4之后增加assert关键字。 语法形式形式一assert condition ;这里condition是一个表达式。如果表达式的结果为true,那么断言为真,并且无任何行动,继续执行;如果表达式为false,则断言失败,后面的代码不会执行,只会抛出一个AssertionError对象。这个As...原创 2019-03-27 11:54:37 · 176 阅读 · 0 评论 -
异常(一)
描述 异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。 所有的异常类型最高的继承类是Throwable,Throwable下有两个子类:Error:指的是JVM错误,这个时候的程序并没有执行,无法处理;Exception:指的是程序之中出现的错误信息,可以进行异常处理。 处理try { 可能出现异...原创 2019-05-09 11:33:29 · 210 阅读 · 0 评论 -
数值舍入问题
jdk 10.0.1 舍入模式部分源码两侧:是指0点左右的正负数值。以下舍去的要求皆为:只保留整数部分,舍去位是小数点后一位。package java.math;public enum RoundingMode{UP,DOWN,CEILING,FLOOR,HALF_UP,HALF_DOWN,HALF_EVEN,UNNECESSARY}UP(两侧都远离...原创 2019-03-29 23:06:21 · 663 阅读 · 0 评论 -
数组
一维数组一、创建声明变量并分配内存int []arr = new int[5];或者:int []arr;arr = new int[5];说明:使用new关键字为数组分配内存时,整型数组中的各个元素的初始化值都为0。二、初始化int arr1[] = new int[]{1,2,3,4}; 或者:int arr2[] = {1,2,3,4}; 或者:a...原创 2019-04-11 22:27:47 · 243 阅读 · 0 评论 -
Java包与Import导入
标题包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。Java package提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。一、包的作用1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的...原创 2019-04-12 12:06:35 · 46811 阅读 · 4 评论 -
异常(二)
例题例一public class Test { public static void main(String[] args) { int i; try { i=9; System.out.println(i); }catch(Exception e) { e.printStackTrace(); } }}Output:9例二pu...原创 2019-04-12 17:15:09 · 104 阅读 · 0 评论 -
Scanner部分用法
概念标准输出流:控制台窗口标准输入流: 源代码public final class Scanner implements Iterator<String>, Closeable {}原创 2019-04-12 17:35:22 · 362 阅读 · 0 评论 -
序列化与反序列化
概念把对象的状态信息转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中。在网络上传送对象的字节序列。从对象流中读取或输入的对象必须是支持 java.io.Serializable 或 java.io.Externalizable 接口的对象。readObject和...原创 2019-04-14 00:00:00 · 176 阅读 · 0 评论 -
流--简述
概念Java中对文件的操作是以流的方式进行的。流是Java内存中的一组有序数据序列。Java程序将数据从源(文件、内存、键盘、网络)读入到内存中,形成了流,然后将这些流还可以写到另外的目的地(文件、内存、控制台、网络)。之所以称为流,是因为这个数据序列在不同时刻可能代表不同的数据来源。分类1、按照输入输出的方向分,分为输入流和输出流。输入输出的参照对象是Java程序。输入到程序,或从程序...原创 2019-04-14 15:59:00 · 232 阅读 · 0 评论 -
格式化
java.util.Formatter源码public final class Formatter implements Closeable, Flushable {}例1import java.util.Formatter;public class COM { public static void main(String[] args) { float x1= -12.3f...原创 2019-05-10 15:45:30 · 227 阅读 · 0 评论 -
反射
RTTI 运行时类型识别(RTTI, Run-Time Type Identification)是Java中的机制,在Java运行时,RTTI维护类的相关信息。 多态是基于RTTI实现的。RTTI的功能主要是由Class类实现的。 Java中每个对象都有相应的Class对象,因此,我们随时能通过Class对象知道某个对象“真正”所属的类。无论我们对引用进行怎样的类型转换,对象本身所对应的C...原创 2019-05-12 01:50:26 · 103 阅读 · 0 评论 -
代理
概要在执行一个功能函数时,经常需要在其中写入与功能不是直接相关但很有必要的代 码,如日志记录,信息发送,安全和事务支持等,这些枝节性代码虽然是必要的,但只有将枝节性代码和功能性代码分开来才能降低耦合程度,去符合现代OO系统的要求。代理模式代理模式,目的是为某对象(委托类的对象)提供一个代理(对象),以控制外界对这个真实对象的访问。代理类负责为委托类实现消息的预处理,消息的过滤,消息的转发...原创 2019-05-12 22:54:59 · 163 阅读 · 0 评论 -
对象复制
为什么要克隆 克隆的对象可能包含一些已经修改过的属性,而new出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的“状态”时就需要clone方法了。那么把这个对象的临时属性一个一个的赋值给新new的对象呢?一来麻烦,二来,clone是一个native方法,在底层实现的,快。 常见的Object a=new Object();Object b;b=a;这种形式的代码复制...原创 2019-05-13 00:43:38 · 101 阅读 · 0 评论 -
接口
接口的基本概念原创 2019-03-24 13:53:52 · 303 阅读 · 0 评论 -
字符串拼接
public class K { public static void main(String[] args) { //+ long start_01 = System.currentTimeMillis(); String a = "a"; for(int i = 0 ; i < 100000 ; i++){ ...原创 2019-03-26 15:02:57 · 7719 阅读 · 0 评论 -
instanceof
描述 instanceof 通过返回一个布尔值来指出,某个对象是否是某个特定类或者是该特定类的子类的一个实例。 用法 result = object instanceof class参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义的对象类。 说明如果 object 是 class 的一个实例,...原创 2019-03-24 23:07:21 · 14000 阅读 · 3 评论 -
Java重写(Override)与重载(Overload)
重写的概念 重写是父类与子类之间的多态性,实质是对父类的方法进行重新定义,如果在子类中定义的某方法与其父类有相同的名称和参数则该方法被重写。重写是对子类从父类继承下来的方法进行重新定义,对于没有继承下来的东西,没有多态作用,谈不上重写。属性隐藏定义:在一个类中,相同姓名的属性,子类的属性隐藏父类的同名属性,即使它们的类型不同。在子类中,不能通过简单的名称来引用父类的属性。属性必须通过父类来...原创 2019-03-22 10:42:55 · 117 阅读 · 0 评论 -
JAVA特性之继承
继承的概念 是指从已有的类中派生出新的类。新的类不仅可以拥有父类的属性、方法,还可以定义自己独有的属性或者方法。 继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示为A继承B。其中B是被继承者,称之为父类或者超类,A是继承者称之为子类或者派生类。子类的特点子类会继承父类所有非private的属性和方法。子类可以拥有自己的属性和方法,即子类可以对...原创 2019-03-22 10:43:52 · 169 阅读 · 0 评论 -
JAVA特性之多态
多态的概念原创 2019-03-22 10:44:17 · 164 阅读 · 0 评论 -
语言类型区分
动态语言 动态类型语言是指在运行期间才去做数据类型检查的语言。也就是说,在用动态类型的语言编程时,不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,将数据类型记录下来。如Python、Ruby等。 静态语言 静态类型语言是指在编译期间就会做数据类型检查的语言。也就是说在写程序时要声明所有变量的数据类型。如C/C++、C#、JAVA等。 编译型语言 ...原创 2019-03-22 11:18:08 · 253 阅读 · 0 评论 -
内部类
基本描述 将一个类的定义放在另一个类的定义内部,就是内部类。多用于有事件监听的情况。内部类一般包括这四种:成员内部类、局部内部类、静态内部类、匿名内部类。 每个内部类都能独立地继承一个(接口的)实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 在我们程序设计中有时候会存在一些使用接口很难解决的问题,这时可以利用内部类提供的、可以继承多个具体的或者抽象的类的...原创 2019-03-25 19:47:14 · 120 阅读 · 0 评论 -
构造器及它与方法的区别
构造器的概念 构造器是一种特殊的函数。其主要功能是用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new操作符一起使用在创建对象的语句中。构造器名与类名相同,可重载多个不同的构造器。构造器,构造函数,构造方法三者是一个概念。1.如果类中没有定义任何构造器,系统会给我们默认提供一个无参的构造器。2.如果类中定义了构造器,那么系统就不会再给我们提供默认的无参构造器。 ...原创 2019-03-22 14:02:40 · 3564 阅读 · 2 评论 -
关键字static
static代表什么? static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,或是形成static代码块,但是要注意一点:Java语言中没有全局变量的概念。 在JVM加载一个类的时候,若该类存在static修饰的成员变量和成员方法,则会为这些成员变量和成员方法在固定的位置开辟一个固定大小的内存区域。同时static所蕴含“静态”的概念表示着它是不可恢复的。 被static...原创 2019-03-22 16:35:15 · 98 阅读 · 0 评论 -
强制类型转换
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。继承关系为:Son extends FatherFather father = new Son();Son son = (Son) father ;父转子成立Father father = new Father();Son son = (Son) father;父转子不成立错误:Exc...原创 2019-03-26 12:57:28 · 269 阅读 · 0 评论 -
代码块
基本描述 在程序中,可以直接使用“{}”定义一段语句。根据定义的位置以及声明关键字的不同,可以分为四种:普通代码块、构造代码块、静态代码块和同步代码块。一般代码块是不能单独运行,必须要有运行主体。 普通代码块 普通代码块是定义在方法之中的代码块。public class K{ public static void main(String args[]) { ...原创 2019-03-22 22:55:56 · 152 阅读 · 0 评论 -
多重继承的实现
利用接口此时实现接口,多半仅是在实现抽象方法。但如果我想使用多个类中的一些具体实现呢?利用内部类转载 2019-03-26 13:59:46 · 472 阅读 · 0 评论 -
抽象类
标题原创 2019-03-23 13:00:20 · 117 阅读 · 0 评论 -
关键字final
基本概念 用final修饰,表示“这部分是无法修改的”。不想被修改的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。 final修饰变量 final可以修饰变量,表示该变量不能被重新赋值,因为这个变量其实是"常量"。 修饰基本类型变量:表示赋值后数值不能改变。 修饰引用类型变量:表示赋值后引用不能改变,但对象本身的属性可以改变。 一个既是stati...原创 2019-03-23 01:51:50 · 177 阅读 · 0 评论 -
访问权限
访问修饰符 Java语言中有4种访问修饰符:private、default(默认)、protected、public。 private:成员变量和方法都只能在定义它的类中被访问,其子类不能对其进行访问。对成员变量进行获取和更改,一般用get(),set() 方法,体现了Java面向对象的封装思想。 default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,...原创 2019-03-23 01:40:43 · 357 阅读 · 0 评论 -
String与基本类型的转换
String转int法1、2:利用包装器类其余包装器用法类似:String s1 = "128";int a1 = Integer.parseInt(s1); //法1//相当于new Integer(Integer.parseInt(s1)).intValue();int a2 = Integer.valueOf(s1).intValue(); //法2int转St...原创 2019-05-13 11:17:40 · 515 阅读 · 0 评论