![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础
文章平均质量分 87
Java基础
Dominic.Pan
这个作者很懒,什么都没留下…
展开
-
枚举&注解
枚举在JDK1.5 之前,使用 public static final 定义常量,很难管理。 枚举,可以把相关的常量分组到一个枚举类型里,并且提供了比常量更多的方法。 用于定义有限数量的一组同类常量,例如: 四季: 春、夏、秋、冬在枚举类型中定义的常量是该枚举类型的实例。jdk1.5前public class Level { public static final Level LOW=new Level(1); public static final Level Medium=原创 2021-12-02 12:58:20 · 435 阅读 · 0 评论 -
XML与JSON
XML可扩展标记语言(eXtensible Markup Language)。XML文件是保存XML数据的一种方式 XML数据也可以以其他的方式存在(如在内存中构建XML数据)。 不要将XML语言狭隘的理解成XML文件。XML的应用:网络数据传输.(目前主要使用Json) 数据存储 配置文件(主要应用)DOM4J解析XML1 引入jar文件 dom4j.jar2 创建一个指向XML文件的输入流FileInputStream fis = new FileInputStream("原创 2021-12-02 09:52:22 · 293 阅读 · 0 评论 -
Java网络编程
网络 编程程序的分类:B/S 程序 : 浏览器与服务器程序 C/S 程序 : 客户端与服务器程序TCP协议指的是 从一台计算机的软件中, 将数据发送到另一台计算机的软件中的过程.三次握手 和 四次挥手tcp协议客户端与服务器连接时, 存在三次握手操作, 确保消息能准确无误的发送. 断开连接是时 , 存在四次挥手操作TCP 协议 的 C/S程序需要使用到两个类, 来编写TCP协议的 CS程序 .ServerSocket 搭建服务器:用于创建服务器 . 创建完毕后, 会绑定一个.原创 2021-12-01 15:31:14 · 74 阅读 · 0 评论 -
Java线程池
线程池 (Executors)如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程 就会大大降低 系统的效率,因为频繁创建线程和销毁线程需要时间. 线程池就是一个容纳多个线程的容器,池中的线程可以反复使用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。几乎所有需要异步或者并发执行任务的程序都可以使用线程池。合理使用有以下好处:“降低系统消耗:重复利用已经创建的线程降低线程创建和销毁造成的资源消耗。 “提高响应速度:当任务到达时,任务不需要等到线程创建原创 2021-07-31 17:39:52 · 90 阅读 · 0 评论 -
Java线程安全
/** * 同步代码块:synchronized(锁对象){ 被同步的代码} * 锁对象可以是任何对象,但是必须唯一,可以理解为锁的钥匙必须是同一把,这样别的线程才能打开 */public class TicketDemo2 { public static void main(String[] args) { TicketMethod ticket= new TicketMethod(); new Thread(ticket).start(); .原创 2021-07-30 21:53:51 · 75 阅读 · 0 评论 -
Java多线程初探
程序是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,是静态的代码。进程是一个内存中运行的应用程序,每个进程都有一个独立的内存空间。进程是程序的⼀次执行过程,是动态的。系统运行⼀个程序即是⼀个进程从创建,运行到消亡的过程。也就是说,⼀个进程就是⼀个执行中(运行)的程序,它在计算机中⼀个指令接着⼀个指令地执行,(程序在执行时会被操作系统载入内存中)每个进程还占有某些系统资源如 CPU 时间,内存空间,文件,输入输出设备的使用权等等。在 Java 中,当启动 main 函数时其实就是启动了⼀.原创 2021-07-26 22:11:12 · 139 阅读 · 0 评论 -
Java序列化
Java序列化是指把Java对象转换为字节序列的过程,Java反序列化是指把字节序列恢复为Java对象的过程。通过序列化和反序列化实现网络传输、本地存储的目的。要实现Java对象的序列化,只要将类实现标识接口——Serializable接口即可,不需要我们重写任何方 法就可以实现序列化。对于不想进行序列化的变量,使用 transient 关键字修饰。 transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化 到文件中,在被反序列化后, transient 变量原创 2021-07-25 17:08:32 · 159 阅读 · 0 评论 -
Java IO
File类File类是对文件系统中文件以及文件夹进行操作的类,通过面向思想操作文件和文件夹不同的系统有不同的分隔符Window系统的路径名称分隔符是:\\Linux系统的分隔符是:/可以通过File.separator获取系统分隔符String path="C:"+File.separator+"hello.txt";方法 作用 createNewFile() 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。 mkdir()...原创 2021-07-23 22:21:13 · 112 阅读 · 1 评论 -
Java集合探究及总结
List,Set,Map的区别List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合(TreeSet会排序),只能根 据元素本身来访问;Queue是队列集合。 Map代表的是存储key-value对的集合,可根据元素的key来访问value。元素无序(TreeMap会排序)Key不能重复,典型的Key是String类型,但也可以是任何对象。Array 和 ArrayList 有什么区别?Array 可以包含基本类型和对象类型,ArrayList 只能包含对象原创 2021-07-22 19:53:19 · 116 阅读 · 0 评论 -
Java异常finally与方法返回值
异常处理常见面试题1. try-catch-finally 中哪个部分可以省略?catch和finally可以省略其中一个 ,catch和finally不能同时省略 注意:格式上允许省略catch块, 但是发生异常时就不会捕获异常了,我们在开发中也一般不会这样去编写代码.单独的try只适合处理运行时异常,try+catch适合处理运行时异常+编译时异常。如果只用try去处理编译时异常却不用catch处理,无法通过编译,必须用catch显示声明以便进一步处理。而运行时异常在编译时 没有如此规定,所原创 2021-07-18 19:45:04 · 1018 阅读 · 0 评论 -
Java集合
类集设置的目的对象数组有那些问题?普通的对象数组的最大问题在于数组中的元素个数是固定的,不能动态的扩充大小,所以最 早的时候可以通过链表实现一个动态对象数组。但是这样做毕竟太复杂了,所以在 Java 中为了方便用户操作各个数据结构, 所以引入了类集的概念,有时候就可以把类集称为 java 对数据结构的实现。 在整个类集中的,这个概念是从 JDK 1.2(Java 2)之后才正式引入的,最早也提供了很多的操作类,但是并没有完 整的提出类集的完整概念。 类集中最大的几个操作接口:Collection、Map原创 2021-07-19 21:51:38 · 130 阅读 · 0 评论 -
Java常用类
java.lang.ObjectObject是所有类的父类,任何类都默认继承Object。最常用的是equals方法(可以使用IDE的自动生成)Object类的公用方法:https://www.cnblogs.com/remember-forget/p/5971962.htmlObject类的静态方法查看帮助文档(不常用)java.lang.MathSystem.out.println(Math.round(-100.5))//-100(四舍五入)java.utils.A.原创 2021-07-16 21:52:25 · 65 阅读 · 0 评论 -
Java泛型
泛型,即“参数化类型”,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定 义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)泛型是 JDK1.5 的一个新特性,泛型就是将类型参数化,其在编译时才确定具体的参数。这种参数类 型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。使用泛型的好处是什么在JDK 1.5之前没有泛型的概念,如果使用 Object 来实现通用,不同类型的处理,有如下缺点:每次使用时都需要强转成目标类型.原创 2021-07-15 21:55:14 · 158 阅读 · 0 评论 -
Java包装类缓存
Java基本类型的包装类的大部分都实现了常量池技术,即Byte,Short,Integer,Long这四种包装类默认创建了数值[-128,127]的相应类型的缓存数据,Character创建了数值在[0,127]范围的缓存数据,Boolean直接返回true或者false。超出此范围会创建新的对象。public static Boolean vatue0f(boolean b){ return(b?TRUE:FALSE);}private static class Characte原创 2021-07-14 21:54:41 · 413 阅读 · 0 评论 -
Java异常
异常是在程序中导致程序中断运行的一种指令流int a=10/0;以上的代码在“int a=10/0;”位置处产生了异常,一旦产生异常之后,异常之后的语句将不再执行了,所以现 在的程序并没有正确的执行完毕之后就退出了。 为了保证程序出现异常之后仍然可以正确的执行完毕,所以要采用异常的处理机制。处理异常处理格式语法如下:try{ // 有可能发生异常的代码段}catch(异常类型1 对象名1){ // 异常的处理操作}catch(异常类型2 对象名2){ try+cat原创 2021-07-13 21:51:45 · 63 阅读 · 0 评论 -
Java面向对象高阶
继承继承是java面向对象编程技术的基石,因为它允许创建分等级层次的类继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例和方法,或子类从父类继承方法,使子类与父类有相同的行为。子类实例化内存分析super不是引用类型的变量,super中存储的不是内存地址,super指向的不是父类对象 super代表的是当前子类对象中的父类型特征当调用super()时,虽然调用了父类的构造方法,但是并不会创建父类的对象!因为构造方法的作用是为堆区中的对象的属性初始化,不是创建对象。su.原创 2021-07-12 21:54:03 · 79 阅读 · 0 评论 -
Java数组
概述数组是相同数据类型的多个数据的容器。这些元素按线性顺序排列。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个 元素外,每一个元素都有唯一的后继元素。(“简单理解就是:一个跟一个顺序排列”)。创建格式格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3...数组内容 n};格式 3. 数据类型[] 数组名;格式 3 属于只创建了数组引用名, 并未在内存创建原创 2021-07-09 16:46:02 · 44 阅读 · 0 评论