随笔分类 - JAVA基础
Java XML与JSON
摘要:XML XML是可扩展标记语言(eXtensible Markup Language)的缩写,它是是一种数据表示格式,可以描述非常复杂的数据结构,常用于传输和存储数据。 特点:一是纯文本,默认使用UTF-8编码,二是可嵌套,适合表示结构化数据。 XML 用途 XML 结构 1、声明 声明:说明本XM
Java 静态字段和静态方法
摘要:在一个class中定义的字段,我们称之为实例字段。实例字段的特点是,每个实例都有独立的字段,各个实例的同名字段互不影响。 还有一种字段,是用static修饰的字段,称为静态字段:static field。 实例字段在每个实例中都有自己的一个独立“空间”,但是静态字段只有一个共享“空间”,所有实例都会
Java 包(package) (不重要)
摘要:为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。 包的作用 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应
Java 枚举(enum)
摘要:Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 12 个月份,一个星期的 7 天,方向有东南西北等。 Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 enum Color { RED, GREEN, BLUE; } enum Color
Java 接口
摘要:接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接
Java 封装
摘要:封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。 封装的优点 1. 良好的封装能够减少耦合。 2. 类内部的结构
Java 抽象类
摘要:抽象类概念 抽象是对用户隐藏实现细节的过程,在Java中,抽象是使用抽象类和接口实现的。 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象之外,类的其它功
Java 多态
摘要:多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现。 多态的优点 1. 消除类型之间的耦合关系 2. 可替换性 3. 可扩充性 4. 接口性 5. 灵活性 6. 简化性 多态存在的三个必要条件 继承 重写
Java 重写(Override)与重载(Overload)
摘要:重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为。 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOE
Java 继承
摘要:继承的概念 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。 继承需要符合的关系是:is-a,父类更通用,子类更具体。 类的继承格式 class 父类 { } class 子类 extends 父类 { } 继承类型 需
Java 内部类
摘要:一般情况下,类和类之间是谁相互独立的,内部类的意思是打破这种独立,让一个类成为另一个类的内部成员,和成员变量、成员方法同等级别。 为什么要使用内部类?采用内部类这种技术,可以隐藏细节和内部结构,封装性更好,让程序的构造更加合理。 官方点的优点!❀每个内部类都能独立的继承一个接口的实现,所以无论外部类
Java日志 JDK Logging,Commons Logging,log4j,SLF4J和Logback
摘要:1. Logging Java标准库内置了日志包java.util.logging。 import java.util.logging.Level; import java.util.logging.Logger; public class Hello { public static void ma
Java 异常处理 二 断言(不重要)
摘要:断言(Assertion)是一种调试程序的方式。在Java中,使用assert关键字来实现断言。 public static void main(String[] args) { double x = Math.abs(-123.45); assert x >= 0: "x must >= 0";
Java 异常处理 一
摘要:异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。 三种类型的异常: 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简
Java ZipInputStream,Files
摘要:ZipInputStream ZipInputStream是一种FilterInputStream,它可以直接读取zip包的内容: ┌───────────────────┐ │ InputStream │ └───────────────────┘ ▲ │ ┌───────────────────
Java File类
摘要:构造File对象时,既可以传入绝对路径,也可以传入相对路径 可以用.表示当前目录,..表示上级目录。 File对象有3种形式表示的路径,一种是getPath(),返回构造方法传入的路径,一种是getAbsolutePath(),返回绝对路径,一种是getCanonicalPath,它和绝对路径类似,
Java IO流(Stream)
摘要:1. Stream 流 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 Stream可以定义为数据序列。 有两种流- InPutStream - InputStream用于从源读取数据。 OutPutStream - OutputStream用于将数据写入目
Java控制台输入输出
摘要:控制台输入输出 (Scanner和print,比较好) BufferedReader 是支持同步的,而 Scanner 不支持。如果我们处理多线程程序,BufferedReader 应当使用。 BufferedReader 相对于 Scanner 有足够大的缓冲区内存。 Scanner 有很少的缓冲
Java 方法
摘要:方法的命名规则 1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。 2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<MethodUnderTest>_<state>,例如 test
Java 正则表达式
摘要:正则表达式语法 在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。 字符 说明 \ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如, n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ ,\\( 匹配 (。 ^ 匹配输入字符串开始的位