
Java SE
文章平均质量分 92
milanleon
这个作者很懒,什么都没留下…
展开
-
Java日志
一、Logger、Level、Filter、Handler 日志类在java.util.logging包下,JDK9后被划分到了java.logging模块下,如果采用模块化方式编写程序,必须在模块描述文件中加入requires java.logging,如下所示:module cc.openhome{ requires java.logging;} Logger类是日志类的起点,它的构造函数是protected,所以不在同包java.util.Logging下的话不能n..原创 2021-02-05 11:16:32 · 231 阅读 · 0 评论 -
Java国际化
一、Java支持的国家和语言import java.util.Locale;public class Test{ public static void main(String[] args) { Locale[] localeList = Locale.getAvailableLocales(); for(int i = 0; i < localeList.length; ++i) { String str = localeList[i].getDisplayCou原创 2020-10-12 17:33:28 · 131 阅读 · 0 评论 -
模块平台系统
1、Java SE9中增加了基于模块来管理链接库功能封装、链接库之间的相依性等需求,而这之前我们都是使用基于类路径的方式来组织、建立和使用链接库。有相关的开发工具可以用来处理模块的使用,下面是我们自己来手动建立模块的一个示例:在项目Hello2的src目录有一个cc.openhome包下的Main类,我们在src中新建一个以模块名称命名的文件夹然后将Main类源码放进去,然后我们在模块文件...原创 2020-03-05 08:47:56 · 670 阅读 · 0 评论 -
类的加载、连接、初始化
1、类的加载、连接、初始化 当使用java命令运行一个java程序的时候就会启动一个java虚拟机进程对该字节码进行加载和执行。当程序使用某个类时,如果该类还未加载到内存中,则JVM会通过加载、连接、初始化三个步骤来对该类进行初始化,有时会统称这三个步骤为类的加载或初始化: 类的加载:类的加载由类加载器完成,加载即为为该类创建一个java.lang.Class实例对象,一个类对...原创 2018-08-31 15:57:40 · 358 阅读 · 0 评论 -
JDBC(1)
1、JDBC数据库编程的示例package xu;import java.sql.*; public class Test{ public static void main (String[] args)throws Exception { //加载MySQL驱动 Class.forName("com.mysql.cj.jdbc.Driver"); Connect...原创 2018-08-24 16:27:13 · 285 阅读 · 0 评论 -
JDBC(2)
1、RowSetRowSet接口继承自ResultSet,它是可序列化的结果集,而且作为JavaBean使用,因此能方便的在网络上传输。RowSet下包含JdbcRowSet、CachedRowSet、FilteredRowSet、JoinRowSet、WebRowSet常用子接口,这些子接口里只有JdbcRowSet需要保持与数据的连接,其他的4个都是可离线的RowSet。Jav.........原创 2018-08-24 16:27:30 · 307 阅读 · 0 评论 -
JAVA之反射
1、通过反射获得类信息类被加载之后系统就会为该类生成一个Class对象,有三种方式来获得类的Class对象:Class.forName()静态方法、类的class成员属性、对象的getClass()方法,推荐使用class成员属性来获得Class对象,因为其在编辑阶段就可以检查需要访问的Class对象是否存在。Class类中包含了获取类的构造器(Constructor类型)、方法(......原创 2018-09-07 10:42:45 · 2893 阅读 · 0 评论 -
Java序列化
1、序列化概述对象序列化可以使对象保存在磁盘或发送到网络中,为了让类支持序列化,该类应该实现Serializable或Externalizable接口。Java中很多类已经实现了Serializable,Serializable是一个标记接口,实现该接口无需实现它的方法,建议每个JavaBean类都实现Serializable。JavaBean是遵循一定编程原则的Java类的...原创 2018-09-18 09:44:41 · 460 阅读 · 1 评论 -
Java I/O
1、File类File类能新建、删除、重命名文件或目录,如果需要访问文件内容则使用I/O流:import java.io.File;import java.nio.file.Files;public class Test{ public static void main(String[] args) throws Exception { File file = new...原创 2018-09-14 15:52:57 · 294 阅读 · 1 评论 -
Java NIO
1、NIO概述使用Java新的I/O技术(NIO)要比面向流的I/O效率要高,因为它使用的是内存映射文件的方式来处理I/O,Java NIO的类都放在java.nio包及其子包下,相关的类有:Buffer(缓冲)、Channel(通道)、Charset、Selector等。Channel通过节点流的getChannel()方法来获得,成员map()用来将其部分或全部数据映射为Buf...原创 2018-09-25 16:12:29 · 2202 阅读 · 0 评论 -
Java NIO.2
Java NIO.2的主要表现为增加了Files、Path、Paths等功能类和基于异步Channel的IO。1、Path、Paths如下为使用Path和工具类Paths的示例:import java.io.*;import java.net.*;import java.nio.file.*;public class Test{ public static void ...原创 2018-09-25 16:12:54 · 493 阅读 · 0 评论 -
Java网络编程(1):基本网络支持
1、InetAddressInetAddress代表IP地址,其有两个子类Inet4Address、Inet6Address,使用类方法getByName、getByAddress、getLocalHost来获取InetAddress对象:import java.net.*;public class Test{ public static void main(String[]...原创 2018-10-18 14:47:04 · 931 阅读 · 1 评论 -
Java线程(2)
1、线程组和异常ThreadGroup是线程组类,Thread类的构造函数中有ThreadGroup参数的版本,用来设置线程所属的线程组,线程的默认线程组为其父线程所在的线程组。在ThreadGroup的构造函数中设置线程组的名称,线程组提供了设置线程组为后台线程组setDaemon()(后台线程组的所有线程结束后后台线程组自动销毁)、中断线程组中所有线程interrupt()等方法。...原创 2018-10-09 10:30:58 · 358 阅读 · 0 评论 -
Java线程(1)
1、创建线程的三种方法 ①、继承Thread类来创建线程:public class Test extends Thread { Test() { super("Thread name"); } public void run()//run为Thread中的线程方法 { String strThreadName = getName(); System.out.pr......原创 2018-09-30 10:46:28 · 354 阅读 · 0 评论 -
Java网络编程(2):TCP和UDP
1、多线程“服务端-客户端” TCP客户端使用Socket来连接服务器和与服务器通信。以下为在主线程中将用户输入发送给服务端,在创建的线程中将服务端发回的数据输出来:import java.net.*;import java.io.*;class ClientThread implements Runnable{ private Socket s; private Buff...原创 2018-10-22 10:15:56 · 362 阅读 · 0 评论 -
Annotation注解
Annotation称为注释或注解,它是一个接口。注解提供了一种为程序元素(类、方法、成员变量等)设置元数据(描述其它数据的数据)的方法。编译器、开发工具或其它程序中可以通过反射来获取程序中的Annotation对象,通过该对象获得注解里的元数据。注解不影响程序代码,通过使用注解可以在不改变程序逻辑的情况下,在源文件中嵌入一些补充信息。1、基本注释@Override:表明该方...原创 2018-08-28 16:33:38 · 4246 阅读 · 0 评论 -
Java异常
Throwable类下有Error和Exception两个子类,Exception是Java异常类,其子类有RuntimeException、IOException、SQLException,其中RuntimeException及其子类称为Runtime异常,其它异常统称为Checked异常。Java认为Checked异常都是可以在编译阶段被处理的异常,所以它强制程序处理所有的Checked...原创 2018-07-04 09:19:18 · 313 阅读 · 0 评论 -
java之泛型
1、泛型集合 集合在定义的时候应该指定泛型类型,即指定元素的类型,否则操作集合的时候会产生警告(泛型类不能用作instanceof操作): HashSet<String> hs1 = new HashSet<String>(); //指定集合元素类型为String HashSet<String> hs2 = new HashSet&...原创 2018-07-02 14:41:09 · 583 阅读 · 1 评论 -
java基础知识
1、switch与c++不同,java的switch不能判断long类型,但可以是String类型。2、局部变量、引用类型java中的变量(基本类型变量、引用变量)在定义后必须初始化,否则不能被使用,因为在初始化的时候系统才为它分配内存。类中的成员变量在对象分配内存后会自动进行初始化,数值类元素会初始化为0、boolean类型为false、引用类型为null。 ......原创 2018-05-15 13:54:48 · 511 阅读 · 0 评论 -
package和import
1、packagepackage类似c++中的命名空间namespace,它用来解决名字冲突问题,"package + 包名"用来将源文件中类放到同一个包下,一个源文件只能包含一条package语句。如下所示的HelloWorld类加入到了lee类中,使用javac命令编译源文件的时候会自动在目标目录下生成lee目录,里面包含了HelloWorld的字节码文件。类加入包后,...原创 2018-05-15 14:01:59 · 325 阅读 · 0 评论 -
java面向对象(2)
1、基本数据类型的包装类java提供了8种基本数据类型的包装类类型:Byte、Short、Character、Integer、Long、Float、Double、Boolean,他们的基类都是Number,可以将他们与基本数据类型直接进行操作。两个包装类对象进行比较操作的话结果可能不是准确的,应该使用静态方法compare()来比较两个包装类对象,两个数相等返回0,第一个数...原创 2018-05-22 13:38:59 · 355 阅读 · 0 评论 -
java面向对象(1)
1、extends和finaljava的类只能单继承,不能像C++那样从多个类继承(接口除外),Java只有多层继承。java中所有的类都是从java.lang.Object直接或间接派生,所以类都具有其方法。使用extends来从指定类继承,如果不想类当做父类即不能派生其它类,可以使用final来声明这个类(String、System都是final类型):class Base{...原创 2018-05-16 15:34:12 · 632 阅读 · 0 评论 -
java之jar包
1、java程序目录比如对于一个最简单的项目,里面现在只包含一个public类Test,如下所示。为了避免与别人的类名有冲突,使用package添加到自己的包xu中,我们可以添加一个项目目录HelloTest,然后在项目目录下再新建两个目录sources和classes,分别存放代码和字节码,sources下再新建一个目录xu放置自己的代码以与别人的代码区分。package xu;pu...原创 2018-06-12 13:35:37 · 400 阅读 · 0 评论 -
java面向对象(3)
1、接口 interface用来定义接口,接口里通常是定义一组公用方法,但不提供实现(默认方法、类方法除外),所以接口中方法和成员只能是public,而且可以省略不写。接口里只能包含抽象方法(可以省略不写public abstract)、默认方法(使用default声明,Java 8开始才支持接口中可以包含默认方法)、类方法或成员(静态成员,静态成员变量只能是public st...原创 2018-06-06 10:56:26 · 307 阅读 · 0 评论 -
java基础类库
1、ScannerScanner是一个基于正则表达式的文本扫描器,它可以从字符串、输入流、文件中解析出字符串或基本类型值,下面为使用Scanner获得用户输入并打印用户输入的例子:package xu;import java.util.Scanner;public class Test{ public static void main(String[] args) ...原创 2018-06-13 15:30:38 · 464 阅读 · 1 评论 -
java面向对象(4)
1、局部内部类和匿名内部类除了成员内部类,还可以在方法中定义内部类,这就是局部内部类,局部内部类不能使用public、private等访问控制符以及static修饰符。局部内部类实际中很少会使用,而是使用匿名内部类。如果局部内部类或匿名内部类中引用了方法的局部变量,那么这个变量就自动成为了final类型。匿名内部类适合只使用这个类来定义一次对象的情况,其定义格式如下,匿名内......原创 2018-06-07 13:25:32 · 329 阅读 · 0 评论 -
JAVA枚举类
枚举类不使用class而是用enum来声明,枚举类是一种特殊的类:enum EnumTest{ SPRING, SUMMER, FALL, WINTER;}枚举类继承自java.lang.Enum类而非Object,Enum类包含方法有compareTo、name、toString、ordinal、valueOf等。枚举类中还包含一个默认的方法values(),他可以返回包含...原创 2018-06-08 09:53:37 · 277 阅读 · 0 评论 -
日期和时间
1、日期和时间Date和Calendar是用于处理日期和时间的类,java8中增加了一系列新的日期时间库:package xu;import java.time.*;public class Test{ public static void main(String[] args) { //Clock:获取指定时区的现在日期、时间 Clock clock = Clock....原创 2018-06-15 16:59:38 · 1196 阅读 · 0 评论 -
正则表达式
正则表达式就是用于匹配字符串的模板,使用它可以对字符串进行查找、替换、分割、提取等操作,String的以下几个方法就依赖java的正则表达式。java提供了Pattern和Matcher两个类用于支持正则表达式。 boolean matches(String regex):判断是否匹配regex表示的正则表达式。 String replaceAll(String regex,...原创 2018-06-15 17:00:02 · 1035 阅读 · 0 评论 -
垃圾回收机制
1、垃圾回收机制 垃圾回收机制只负责回收堆内存中的对象,对象在堆内存可分为可达(有一个或以上的引用)、可恢复(没有任何引用,但可以在finalize()中重新让一个引用变量引用该对象,这样该对象变为可达状态)、不可达(系统调用完finalize()后该对象仍然没有任何引用)三种状态,只有对象为不可达状态,系统才进行垃圾回收。垃圾回收机制会在对象失去引用后在合适的时候进...原创 2018-06-08 16:46:47 · 1389 阅读 · 0 评论 -
集合(1)
1、概述数组元素既可以是基本数据类型,也可以是对象引用,集合中元素只能是对象引用,集合类位于java.util包下,java.util.concurrent包下为多线程支持的集合类。java集合主要包含List、Set、Queue、Map四种体系。 Set、List、Queue是由Collection接口派生而来的子接口,Collection包含add()、remove()、...原创 2018-07-02 14:40:30 · 401 阅读 · 0 评论 -
集合(2)
1、Set Set是不能包含相同元素的集合接口,向Set添加相同元素会失败,HashSet、TreeSet、EnumSet是Set接口的实现类。HashSet根据元素的hash值来决定元素的存储位置,其元素类型可以不同,元素值也可以是null,它判断元素是否相等的依据是根据equals()和hashCode()都返回相等。如果需要重写HashSet元素的equal...原创 2018-07-02 14:40:47 · 445 阅读 · 1 评论 -
Java入门和概述
1、Java分类Java SE:Java Standard Edition,java标准版本,是JDK、JVM以及Java标准API的合集,是ee和me的基础。Java EE:Java Enterprise Edition,java企业版本,基于SE的一套接口规范(协议, API, 服务),发行商依据这些接口规范实现自己的框架。ee用来做企业级应用,主要是Java Web。...原创 2018-05-03 15:26:35 · 1173 阅读 · 0 评论