
Java基础
文章平均质量分 53
不会画画的画师
开发六年有余...
展开
-
Java9新特性
等工厂方法用于创建不可变集合,这些方法使原先的代码变得更明了清晰。,可用于快速测试和学习Java。Java9引入了交互式编程工具。原创 2025-04-08 20:16:41 · 281 阅读 · 0 评论 -
29、正则表达式
正则表达式场景导入要求:判断一个字符串是否全部由数字组成。实现原理:将字符串变为字符数组,而后判断每个字符是否在0-9之间。范例:判断字符串是否全部由数字组成public class Demo { public static void main(String[] args) throws Exception { String str = "1234"; System.out.println(isNumber(str)); } publi原创 2020-09-29 17:31:11 · 195 阅读 · 0 评论 -
28、比较器
Arrays类Arrays类是java.util工具包中的一个类,主要用于对数组进行操作。在Arrays类中存在有二分查找法:public static int binarySearch(数据类型[] a, 数据类型 key)二分查找举例:在1,2,3,4,5,6,7,8,9中找到2。先找到5,判断可得,2 比5小;在1-5间继续找,先找到3,2比3小;在1~3间继续找,找到了2。由该过程可得,二分查找前,数据必须进行排序。范例 :二分查找import java.util.Arrays;原创 2020-07-29 10:59:23 · 180 阅读 · 0 评论 -
27、日期操作类
日期处理类(Date)在Java中有一个Java.util.Date的类,直接表示当前时间。范例:取得当前时间import java.util.Date;public class Demo { public static void main(String[] args) throws Exception { Date date = new Date(); System.out.println(date); // Tue May 02 16:23:10 C原创 2020-05-25 09:14:54 · 246 阅读 · 0 评论 -
26、Annotation
软件开发经历了三个阶段:(1)与配置相关的代码写在程序中;(2)配置与程序代码独立,即程序运行时根据配置文件操作;但会造成配置文件过多时,查错困难;(3)配置信息对用户而言无用,而且错误的修改还会导致程序异常。因此将配置信息写回到程序中,但利用一些明显的标记来区分配置信息与程序。Annotation简介Annotation是JDK1.5最大的特色,利用注解的形式来实现程序的不同功能。在Java SE中支持自定义Annotation的开发,并且提供了三个最为常用的基础Annotation:@Ove原创 2020-05-25 09:05:54 · 201 阅读 · 0 评论 -
Java多线程
Java多线程实现Java可通过以下两种方式实现多线程:· 继承Thread类;· 实现Runnable接口(此外扩充了Callable接口)线程与进程Java支持多线程。1、进程指的是一次程序的完整运行,在运行过程中内存、处理器、IO等资源都是为该进程服务。DOS系统时代,有一种现象:假如病毒运行,那电脑就无法运行,因为所有资源都被病毒占用。但在windows时代,即使病毒在运行,...原创 2020-03-31 12:01:44 · 179 阅读 · 0 评论 -
Java8特性
Java8特性接口定义增强JDK1.8之前,接口的组成只有全局变量和抽象方法。从JDK1.8开始,接口的组成增加了。假设:现有一个接口,其子类有2W个。现在发现该接口功能不足,要增加一个方法,该方法对于所有子类而言的功能是一样的(即方法体是一样的)。此时要修改每个子类的方法,要修改2W次。上述问题在JDK1.8中不存在,因为其允许接口中定义普通方法,但普通方法必须使用default定义。...原创 2020-03-26 16:07:20 · 259 阅读 · 0 评论 -
Java对象克隆
在Object类中提供有对象克隆的方法:protected Object clone() throws CloneNotSupportedException.该方法抛出一个CloneNotSupportedException不支持克隆异常,当要克隆的类没有实现Cloneable接口,就会出现该异常。Cloneable接口是标识接口,表示一种操作能力。范例:实现对象克隆class Book im...原创 2019-12-31 10:10:00 · 155 阅读 · 0 评论 -
JAVA基础类库--System
System类1、可用System.arraycopy()实现数组拷贝,该方法的定义如下:public static void arraycopy(Object src, int srcPos, Object dest,int destPos, int length)2、 在System类中定义有一个方法,用于取得当前系统时间,其定义如下:public static long current...原创 2019-12-31 10:07:38 · 189 阅读 · 0 评论 -
JAVA基础类库--Runtime
每个JVM进程中都存在一个Runtime对象,这个类的主要功能是取得一些与运行时有关的环境属性或者进行线程创建。1、Runtime类定义:public class Runtime extends Object,其构造方法私有化,这是单例设计模式的应用,为了保证整个进程中只有唯一的Runtime对象。因此Runtime提供了一个static方法,用于取得Runtime的实例化对象:public s...原创 2019-12-31 09:55:52 · 238 阅读 · 1 评论 -
JAVA基础类库--Object
Object类用于统一对象、数组和接口。Object类基本描述1、Object类是所有类的父类,即任何一个类在没有定义继承某个类时,Object类就是其父类。class Book{} class Book extends Object{}上述两个类声明是等价的,Object类是唯一没有父类的类。Object类是所有类的父类,因此可以利用Object类通过向上转型,接收所有类型的对象。...原创 2019-11-22 09:14:16 · 275 阅读 · 0 评论 -
Java--枚举
枚举枚举简介1、多例设计模式:构造方法私有化,而后在类的内部提供有若干个实例化对象,并且通过static方法返回。范例:定义一个表示颜色基色的多例class Color { private String title; private static final Color RED = new Color("红色"); private static final Col...原创 2019-05-28 09:52:54 · 544 阅读 · 0 评论 -
JAVA基础类库---StringBuffer
1、String类的特点:(1)String对象有两种实例化方式:直接赋值:只开辟一块堆内存空间。可以自动入池;构造方法:开辟两块堆内存空间,不会自动入池,可用intern()手工入池;(2)字符串是String类的匿名对象;(3)字符串一旦声明则不可更改,改变的是String对象的引用;2、为解决String类的内容不可改变的问题,Java提供了StringBuffer类(Strin...原创 2019-04-26 10:49:37 · 157 阅读 · 0 评论 -
JAVA5特性---泛型
泛型问题引出1、要求:定义一个表示坐标的类(Point),该类要保存以下几种坐标:· 整数:x = 10、y = 20;· 小数:x = 10.2、y = 20.3;· 字符串:x = 东经20度、y = 北纬15度。Point类的设计关键在于x和y的类型,必须有一种类型可以保存这三类数据,首先想到的是Object类型:· int:int自动装箱为Integer,Integer...原创 2019-04-26 10:44:15 · 236 阅读 · 0 评论 -
JAVA5特性---可变参数
要求:定义一个方法,可以接收多个整型数据的相加。范例:用数组解决该问题public class Demo { public static void main(String[] args) { System.out.println(add(new int[]{1, 2, 3})); System.out.println(add(new int[]{1, 2...原创 2019-04-15 17:26:37 · 175 阅读 · 0 评论 -
Java常用类(二)
Math类1、Math类用于数学计算,提供了一系列的数学计算方法。Math类中的方法都是static方法,因为Math类没有普通属性。2、在Math类中的四舍五入方法需要注意public static long round(double a);范例:四舍五入public class Demo { public static void main(String[] args) thro...原创 2019-02-28 09:36:38 · 194 阅读 · 0 评论 -
Java常用类(一)
StringBuffer1、String类的特点:(1)String对象有两种实例化方式:直接赋值:只开辟一块堆内存空间。可以自动入池;构造方法:开辟两块堆内存空间,不会自动入池,可用intern()手工入池;(2)字符串是String类的匿名对象;(3)字符串一旦声明则不可更改,改变的是String对象的引用;2、为解决String类的内容不可改变的问题,Java提供了String...原创 2019-02-28 09:35:45 · 198 阅读 · 0 评论 -
25、异常捕获与处理
合理使用异常处理,可以让程序更加健壮。异常的产生异常是导致程序中断执行的一种指令流。当异常出现时,如果没有合理处理,程序就会中断执行。范例:不产生异常的代码public class Demo { public static void main(String[] args) { System.out.println("1.除法计算开始"); Syste...原创 2020-02-29 22:08:21 · 1245 阅读 · 0 评论 -
24、单例和多例
单例设计模式(1)正常情况下,类只有产生实例化对象后才能操作这个类。范例:观察程序package com.java.demo;class Singleton{ public void print() { System.out.println("Hello World!"); }}public class Demo { public stati...原创 2020-01-31 14:52:28 · 199 阅读 · 0 评论 -
23、访问控制权限
访问控制权限Java有四种访问控制权限:public,protected,default,private。No.范围publicprotecteddefaultprivate1在同一个类中√√√√2在同一包的不同类√√√3在不同包的子类√√4在不同包的非子类√protected权限与包的定义有关。范例...原创 2020-01-31 14:49:34 · 151 阅读 · 0 评论 -
22、包的定义与使用
包的定义1、包指的是程序的目录。早期开发一个程序是将所有类写在一个java文件中,编译后程序将直接保存在根目录下。利用包可以实现程序拆分,将不同的类根据要求保存在不同目录中。包的定义通过关键字package完成。范例:定义包package com.java.demo;public class Demo { public static void main(String[] arg...原创 2020-01-31 14:46:06 · 661 阅读 · 0 评论 -
21、基本数据类型的包装类
1、Java设计的基本原则:一切皆对象,一切操作都以对象的形式进行描述。此时我们发现,有一个矛盾点,基本数据类型不是对象。对于这个矛盾点,我们可以进行处理:class MyInt { // 定义类 private int num; // 类封装基本数据类型 // 定义构造方法,将基本数据类型传递给对象 public MyInt(int num) { th...原创 2019-11-22 09:17:42 · 218 阅读 · 0 评论 -
20、抽象类与模板设计模式
抽象类基本概念1、抽象类是含有抽象方法的类。抽象方法没有方法体,必须用abstract定义。abstract class A { // 抽象类 public void fun(){方法体;} // 普通方法 public abstract void print(); // 抽象方法}public class Demo { public static void m...原创 2019-10-12 10:45:06 · 236 阅读 · 0 评论 -
19、对象多态性
对象多态性多态性依赖于方法覆写。class A { public void print() { System.out.println("A中的方法"); }}class B extends A { public void print() { System.out.println("覆写的方法"); }}public c...原创 2019-10-12 10:41:51 · 365 阅读 · 0 评论 -
18、关键字final
关键字finalJava中,final被称为终结器,可以用于定义类、方法、属性,具有如下特点:1、final定义的类不能有子类final class A{}class B extends A{} //报错,无法继承A类开发系统类或者进行一些架构代码开发时使用到final定义类。2、final定义的方法不能被方法覆写父类中某些方法具备某种隐藏的特性,或子类必须使用该方法时,使用fin...原创 2019-10-12 10:36:36 · 166 阅读 · 0 评论 -
从0开始学Java(011)_继承与覆写
继承性继承性的作用是解决代码重用问题。继承问题的引出范例:定义两个类Person和Studentclass Person{ private String name; private int age; public void setName(String name){ this.name = name; } public void setAge(int age){ th...原创 2019-10-12 10:34:27 · 197 阅读 · 0 评论 -
16、接口
接口接口的基本定义1、接口是只由抽象方法和全局变量组成的类,使用interface关键字定义。interface A { // 定义接口 public static final String MSG = "Hello"; // 全局常量 public abstract void print(); // 抽象方法}由于接口中存在抽象方法,因此接口对象不能直接实例化,其使...原创 2019-09-23 11:11:22 · 207 阅读 · 0 评论 -
15、链表
链表是引用的加强应用.知识点前提:依赖于引用传递;this表示当前对象。链表基本概念1.链表是一种简单的数据结构,功能是依靠引用关系实现多个数据的保存。根据上图编写代码:要求:定义一个Node类,保存String类型数据,同时拥有下一个节点的引用。// 每个链表由多个节点组成class Node { // 定义节点类 private String data; // 要...原创 2019-08-26 10:27:26 · 292 阅读 · 0 评论 -
14、内部类
内部类从开发角度来说,尽量不要使用内部类内部类基本概念1.内部类是指在一个类的内部定义其他的类。范例:内部类class Outer { // 外部类 private String msg = "Hello World"; class Inner { // 内部类 public void print() { System.out...原创 2019-08-26 10:05:02 · 186 阅读 · 0 评论 -
13、代码块
代码块代码块是{}定义的一段语句,根据定义的位置和关键字的不同,代码块分为四种:普通代码块,构造块,静态块和同步代码块。普通代码块1.写在方法中的代码块,称为普通代码块。public class Demo { public static void main(String[] args) { { // 普通代码块 int num = 10;...原创 2019-08-26 09:45:52 · 136 阅读 · 0 评论 -
12、关键字static
关键字staticstatic 定义属性问题引出:class Book { private String title; private double price; // 为操作方便,暂不封装 String pub = "清华大学出版社"; public Book(String title, double price) { this...原创 2019-07-30 16:05:09 · 156 阅读 · 0 评论 -
11、对象比较
对象比较1.数字比较用==,字符串比较用equals(String str)。要进行对象比较,必须对对象中所有属性的值进行比较。范例:对象比较的基本方式class Book { private String title; private double price; public Book(String title, double price) { ...原创 2019-07-30 16:02:45 · 135 阅读 · 0 评论 -
从0开始学Java(009)_引用传递的应用
引用传递分析实例引用传递1.引用传递核心意义:同一块堆内存可以被不同栈内存所指向,不同栈内存可以对同一块堆内存进行修改。范例:引用传递public class Message { private int num = 10; public Message(int num) { this.num = num; } public int get...原创 2019-07-30 09:01:16 · 192 阅读 · 0 评论 -
从0开始学Java(007)_关键字this、static与代码块
关键字thisthis调用属性class Book { private String title; private double price; public Book(String t, double p) { title = t; price = p; } // setter和getter方法略 public...原创 2019-06-28 14:52:32 · 157 阅读 · 0 评论 -
从0开始学Java(010)_String类的特点及使用
JDK_API文档由下面几部分组成:(1)类的定义以及相关的继承结构(2)类的简短说明(3)类的成员组成(4)类所提供的构造方法(5)类所提供的普通方法(6)类的成员,构造方法,普通方法的详细说明deprecated标记表示不再建议使用。String对象的两种实例化方式1.String是字符串类,下面将类的角度与内存关系分析其作用:(1)直接赋值String value_n...原创 2019-01-29 15:13:06 · 325 阅读 · 0 评论 -
从0开始学Java(008)_数组的定义及使用
数组的定义及使用基本概念1.数组是一组相同类型变量的集合。数组属于引用数据类型。2.数组的定义语法(1)声明并开辟数组: 数组类型 数组名[] = new 数据类型[数组长度](2)分步完成:// 声明数组数组类型 数组名[] = null;// 开辟数组数组名 = new 数据类型 [数组长度]3.数组开辟空间后, 如不赋值,则每个元素为该元素类型的默认值。可利用数组名[索...原创 2018-11-01 12:50:16 · 473 阅读 · 1 评论 -
从0开始学Java(006)_类与对象
面向对象简介面向过程:指的是针对某一个问题单独提出解决方案和代码开发。面向对象:以组件化的形式进行代码设计,优点是代码可重用。面向对象语言的特征:(1)封装性:内部操作对外部不可见,保护内部结构安全性。(2)继承性:在已有的程序结构上扩充新的功能。(3)多态性:相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果面向对象开发步骤:OOA(面向对象分析),OOD(面向对象设...原创 2018-10-24 23:16:34 · 433 阅读 · 0 评论 -
从0开始学Java(005)_方法的定义与使用
方法的定义与使用方法的基本概念方法就是一段可重复使用的代码块。所以当要反复执行一段代码时,可考虑将这段代码定义为方法。本章中的方法指的是定义在主类中,由主方法直接调用的方法。此类方法的语法:public static 返回值类型 method_name(v_type v1, v_type v2,...) { 方法体; // 方法要进行的若干操作 [return [返回值]...原创 2018-10-23 22:30:49 · 148 阅读 · 0 评论 -
从0开始学Java(004)_Java运算符和程序逻辑控制
常用运算符:四则运算符、逻辑运算符、三目运算符和位运算符。基本运算符=为赋值运算符。四则运算符基本组成:+、-、*、/、%。不要使用运算符编写过于复杂的计算。public class Demo { public static void main(String[] args) { int numA = 10; double numB = 20;...原创 2018-10-15 23:02:19 · 257 阅读 · 0 评论 -
从0开始学Java(003)_Java数据类型
Java数据类型分为两大类:基础数据类型和引用数据类型两者的区别在于基础数据类型不需要进行内存分配,而引用数据类型需要进行内存分配。1、数据类型基本数据类型: |-数值型: |-整型:byte、short、int、long; →默认值:0;&...原创 2018-10-14 16:22:25 · 180 阅读 · 0 评论