Java
文章平均质量分 86
Java
Charge8
此随笔或为自己所写、或转载于网络。仅用于个人收集和备忘。共享:正如牛顿所说“如果我比别人看得远,那是因为我站在巨人的肩膀上”
展开
-
Java SPI机制
Java SPI机制原创 2022-07-10 14:02:08 · 330 阅读 · 0 评论 -
Java 获取resources下的文件路径和创建临时文件
之前处理根据模板文件,批量导入xxx.zip 的下载功能,用到这两个知识,就简单记录下,对于流的处理就跳过了 由于maven项目打包会把src/main/java和src/main/resources下的文件放到target/classes下,所以统一以根路径代表此目录。 一、获取resources下的文件路径总结起来有两点:1、C...原创 2020-03-01 20:49:55 · 16506 阅读 · 0 评论 -
对象关系设计
面向对象是符合人们对现实世界的思维模式,利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,一个设计良好的类,应该是兼顾信息和行为并且高内聚。而不同的类之间,应该做到松耦合。 面对应用系统或者需要解决的问题经常是复杂的、高度抽象的,我们创建的多个对象往往是有联系的,通常对象之间的关系可以分为以下几类:泛化/继承关系实现关系依赖...原创 2019-10-20 16:17:37 · 741 阅读 · 0 评论 -
常用字符集及字符编码和Charset类
计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。字符(Character) :是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。 字符集(Character Set/Charset):是一个系统支持的所有抽象字符的集合。由多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,字符和二进制数字的对应规则不同。常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GBK字符集、Unicode字符...转载 2020-07-29 21:23:11 · 4581 阅读 · 0 评论 -
Java对象序列化与反序列化
一、序列化和反序列化介绍在Java中,对象的序列化与反序列化被广泛应用到RMI(远程方法调用)及网络传输中。序列化:指将Java对象数据保存到磁盘文件中或者传递给其他网络的节点(在网络上传输)。反序列化:指将磁盘文件中的对象数据或者把网络节点上的对象数据,恢复成Java对象的过程为反序列化。对象序列化机制允许把内存中的Java对象转换成与平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。其他程序一旦获得了这种二进制流,都可以将这种二进原创 2020-07-22 22:25:02 · 536 阅读 · 0 评论 -
Java 内省机制
一、内省机制概述 Java中的反射机制是通过名称得到类的方法和对象的成份,对于一切Java类都是适用的,但是有时候使用起来比较麻烦。而JavaBean是一种特殊的Java类,遵守JavaBean的规范,即所有的成员都是私有成员,且每个成员都有公开的读取和设定的方法(getter和setter),且这些方法都遵守命名的规范。就是因为JavaBean有这些的特性,sun推出了一种专门...原创 2019-09-11 14:25:40 · 419 阅读 · 0 评论 -
Java RTTI和反射机制
一、Java的RTTI RTTI(Run-Time Type Identification,通过运行时类型判定)的含义就是在运行时识别一个对象的类型,其对应的类是Class对象,每个java里面的类都对应一个Class对象(在编写并且编译后),这个对象被保存在这个类的同名class文件里。 RTTI有两种形式:(1)传统的RTTI;(2)反射reflection机制...原创 2018-07-29 10:42:30 · 911 阅读 · 0 评论 -
Java7 Parh,Files和AIO中AsynchronousFileChannel
Parh,Paths与Files是在JDK7中新添加进来的,都在 java.nio.file包下面,使用时注意JDK版本一、Parh,Paths1、java.nio.file.Paths类 作用:通过一个路径字符串来构造 Path对象。 Paths类是 final修饰的,仅由两个static方法组成。 static Path get(Strin...原创 2019-09-10 17:38:28 · 554 阅读 · 0 评论 -
Java中 File类(文件、目录和文件过滤器)
Java文件类 Java文件类以抽象的方式代表文件名和目录路径名。该类主要用于文件和目录的创建、文件的查找和文件的删除等。只能设置和获取文件本身的信息,不能设置和获取文件的内容。 File对象代表磁盘中实际存在的文件和目录。File类中提供了两类常量,分别来表示路径分隔符和属性分隔符: static String pathSeparator ...原创 2018-07-22 15:40:45 · 571 阅读 · 0 评论 -
JDBC 连接池(DBCP/Druid)
一、连接池概述1、为什么要使用数据库连接池? 数据库(Connection)是一种关键的、有限的、昂贵的资源。 普通的JDBC数据库连接使用 DriverManager.getConnection(...)来获取,每次向数据库建立连接时都要将Conneciton加载到内存,在验证用户名和密码,使用完毕时,释放资源,即断开与数据库的连接。连接过多时,会导致内存泄漏...原创 2019-09-10 14:46:09 · 869 阅读 · 0 评论 -
JDBC 事务、批处理和获取主键
一、事务处理 事务(Transaction,简写为tx):在数据库中,事务是指一组逻辑操作,不论成功与失败都作为一个整体进行工作,要么全部执行成功,要么全部不执行(执行失败)。1、处理事务的两个动作 1)提交(commit):在整个事务中,所有的逻辑操作都正常执行成功,则提交事务。 2)回滚(rollback):在整个事务中,有一个或多个逻辑操作执行失败,则...原创 2019-09-09 16:37:29 · 481 阅读 · 0 评论 -
java JDBC之mysql
一、什么是JDBC JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库。 JDBC接口及相关类在 java.sql 包和 javax.sql 包里。用它来连接数据库,执行操作关系型数据库。 JDBC接口让Java程序和JDBC驱动实现了松耦合(通过JDBC接口完成的,而驱动只有在通过Class....原创 2018-07-31 21:05:08 · 450 阅读 · 0 评论 -
JDBC DAO设计与JdbcUtil工具类
前面了解了java.sql.Statement接口,现在了解java.sql.PreparedStatement接口java.sql.PreparedStatement接口: 表示预编译的SQL语句的对象,可以提高性能。 无论是执行DML还是DQL语句,都必须先设置?占位符参数,然后在执行SQL语句前给对应的?设值,最后执行。 ResultSet ex...原创 2019-09-08 22:11:55 · 466 阅读 · 0 评论 -
JDBC DML/DQL入门操作
java项目进入mysql-connector-java-5.1.48.jar MySQL5.7一、JDBC概述1、持久化(persistence) 1)什么是持久化? 来自孙卫琴写的《精通Hibernate:Java对象持久化技术详解》中,的解释,感觉还是比较完整:狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持...原创 2019-09-06 16:42:07 · 343 阅读 · 0 评论 -
Java 注解和自定义注解使用
一、注解的概念和作用 从JDK5开始,Java增加了对元数据(MetaData)的支持,就是注解Annotation; 元数据(metadata):描述数据的数据。 注解是指代码里的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。 所有的注解都是 java.lang.annotation.Annotation接...原创 2019-09-01 15:15:52 · 470 阅读 · 0 评论 -
Java 集合工具类--Arrays和Collections
一、java.util.Arrays类 Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用。1、Array类与Arrays类的区别? Array类提供了提供静态方法,把数组作为Object来动态创建和访问 Java数组的方法。 Arrays类包含用于操作数组的各种方法...原创 2019-08-21 19:53:01 · 606 阅读 · 0 评论 -
Java Array类和实现System.arraycopy()数组拷贝
1、Array类与Arrays类? Array类提供提供静态方法来动态创建和访问 Java数组的方法。 Arrays类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。2、Array类的方法 static Object get(Objectarray, intindex) 返回指定数组...原创 2019-08-18 20:33:20 · 614 阅读 · 0 评论 -
Java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
Java中的泛型,只在编译阶段有效。在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段。 泛型有三种使用方式,分别为:泛型类、泛型接口和泛型方法。 泛型可用任意标识表示,常见有T、E、K、V等形式的参数表示 泛型的类型参数只能...转载 2019-08-08 11:06:59 · 224 阅读 · 0 评论 -
Java System与Runtime类常用方法
一、System类System类包含几个有用的类字段和方法。 它不能被实例化。System类提供的System包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法。 方法等: static void arraycopy(Objectsrc, intsrcPos, Ob...原创 2019-07-23 17:46:36 · 678 阅读 · 0 评论 -
List<Map>遍历修改map值
有个小需求: list2 覆盖 list1 对应的值, 无对应时默认list的值,(list1.size()大于list2,只是counts 值不同) list1 [{levels=1, counts=0}, {levels=2, counts=0}, {levels=3, counts=0}] list2 [{levels=1, counts=2...原创 2018-12-04 16:11:09 · 7304 阅读 · 0 评论 -
Java集合框架 -- Set和Map接口
一、Set接口 Set集合代表一个无序集合,集合中的元素不可以重复,访问集合中的元素只能根据元素本身来访问。 即Set集合无索引、不可以重复(元素唯一)、无序(存取顺序不一致)。 实现Set接口的集合主要有:HashSet、LinkedHashSet、TreeSet。HashSet类 HashSet是一种没有重复元素的无序集合,Ha...原创 2019-08-07 21:32:57 · 553 阅读 · 0 评论 -
Java集合框架 -- List接口(ArrayList、LinkedList、Vector和Stack)和迭代
Java集合工具包位于 java.util 包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。 学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 使用的是JDK1.8一、什么是集合框架 集合...原创 2019-08-03 15:49:39 · 2476 阅读 · 0 评论 -
Java 正则表达式详解
转载文章地址:正则表达式(Java版整理) 作者整理的挺详细,真不错。值得学习转载转载 2019-07-30 15:18:35 · 203 阅读 · 0 评论 -
Java String、StringBuffer和StringBuilder类
常量池:专门存储常量的地方,包括了类,方法,接口中的常量以及字符串常量。 编译常量池: 把字节码加载斤JVM的时候,存储的是字节码的相关信息.(不研究) 运行常量池: 存储常量数据(研究).字符序列:把多个字符按照一定得顺序排列起来。字符串:把多个字符串串联起来.字符串的分类: 1)不可变的字符串: String:当前对象创建完毕之...原创 2019-07-26 16:32:04 · 172 阅读 · 0 评论 -
Java Random、ThreadLocalRandom和UUID随机数类
一、java.util.Random Random 类的实例用于生成伪随机数 Random 类将 种子数 作为随机算法的起源数字,计算生成伪随机数,其与生成的随机数字的区间无关 创建 Random 实例时,若没有指定种子数,则会以当前时间 作为种子数,来计算生成伪随机数 拥有相同种子的 Random 实例,在相同次数下,生成的伪随机数完全相同...原创 2019-07-25 17:14:39 · 1196 阅读 · 0 评论 -
Java Math、BigDecimal和BigInteger类常用方法
与数学相关的三个常用类Math 类:Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。都是静态方法,使用不多.BigDecimal 类:float和double都不能表示精确的小数,此时使用 BigDecimal类,用于处理金钱和精度要求高的数据.BigInteger 类:表示大整型,如果两个long类型的最大值相运算,结果long再也存储不下,此时使用BigI...原创 2019-07-24 21:07:46 · 1373 阅读 · 0 评论 -
Java 异常处理
1、java 异常异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通过API中 Throwable 类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。 Java异常类层次结...原创 2018-07-28 21:41:33 · 553 阅读 · 0 评论 -
Java 接口与枚举
一、Java中的接口1、接口 多个抽象类的抽象就是接口。用 interface 来声明接口。 在Java中最小的程序单元是类,接口其实是一个特殊的类.,编译之后,和类一样具有一份字节码 Java中接口表示规范,用于定义一组抽象方法,表示某一类事物必须具备的功能,要求实现类必须来实现该接口并提供方法实现.定义接口语法: [public] inter...原创 2019-07-14 14:03:16 · 1919 阅读 · 0 评论 -
Java 抽象方法、final与static、代码块和内部类
一、抽象类与抽象方法1、什么是抽象类? 抽象类是用来捕捉子类的通用特性的。使用 abstract 关键字修饰的类。一般的,抽象类命名,以Abstract作为前缀,见名知义特点: 1)不能创建实例即不能new一个抽象类(对象调用抽象方法,无方法体,没有意义)。 2)抽象类可以不包含抽象方法,若一旦包含,该类必须作为抽象类。 3)若子类没有实现...原创 2019-07-13 22:57:34 · 439 阅读 · 0 评论 -
Java 三大特征:封装、继承(方法覆盖,this,super)和多态
面向对象的三大特征:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。 一、封装(Encapsulation) 封装:将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的公共方法来实现对隐藏信息的操作和访问。 封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过...原创 2019-07-11 21:30:14 · 515 阅读 · 0 评论 -
Java 类、对象和构造器
面向过程(Procedure Oriented,简称PO):是一种以过程为中心的编程思想,该思想是站在过程的角度思考问题,强调的就是功能行为,功能的执行过程,即先干啥,后干啥。而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现,使用的时候依次调用函数就可以了。 面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。为了解决这一种软件...原创 2019-07-08 22:40:51 · 556 阅读 · 0 评论 -
Java 方法(方法重载)与数组
一、方法(Method)1、方法的定义 1)方法定义与格式: 方法(Method),有人称之为函数(function),其实就指一个特定的功能操作,程序中能完成独立功能,可重复使用的一段代码的集合。[修饰符] 返回值的类型 方法名字([类型 变量1,类型 变量2 ,...]){ 方法体 [return 值];}注意点:(1)方...原创 2019-07-02 23:09:10 · 836 阅读 · 0 评论 -
Java 三种流程控制语句
一、顺序结构 如果代码里没有流程控制,程序从上到下按照书写的格式依次执行。 public static void main(String[] args) { int result = 1; result = result++; System.out.println("result=" + result); //1 ...原创 2019-06-25 11:10:10 · 2854 阅读 · 0 评论 -
Java 基本语法数据类型和运算符
一、Java 基本语法1、Java 基本语法 1)Java语言严格区分大小写,好比main和Main是完全不同的概念。 2)类名:类名的首字母应该大写 3)方法名:所有的方法名都应该以小写字母开头,如果方法名含有若干单词,则后面的每个单词首字母大写。 4)一个Java源文件里可定义多个Java类,但其中最多只能有一个类被public修饰。若源文件...原创 2019-06-24 10:07:35 · 292 阅读 · 0 评论 -
Java 入门环境变量配置
1、移动互联网:就是将移动通信和互联网二者结合起来,成为一体。是指互联网的技术、平台、商业模式和应用与移动通信技术结合并实践的活动的总称。2、操作系统:(Operating System,简称OS):是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。3、平台(硬件+OS)的相关性:我们把能够支持程序运行...原创 2019-06-23 21:25:29 · 296 阅读 · 0 评论 -
Java8中的时间和日期(下)
在上篇文章Java中的时间和日期(上)里面,简单介绍了Java中的Date类,Calendar类以及用于格式化的SimpleDateFormater类。使用这些的时候我们会明显地感受到其中的不便之处,比如,Calendar类的月份是从0开始计数的;日期格式输出不够友好,很多情况下都需要使用SimpleDateFormater类来格式化;一些简单得日期计算也比较麻烦等等。所以就有了joda-time...转载 2018-07-21 21:14:54 · 898 阅读 · 0 评论 -
Java中的时间和日期(上)
自从JDK 1.0开始,Java就提供了Date来处理时间和日期,作为老古董自然有很多东西是过时的。然后出现了Calendar来解决了很多问题,但是Calendar使用比较复杂,并且有些反人类的地方。直到Java 8的出现,它吸收了Joda-Time库的经验,使得Java处理时间和日期变得比较”人性化”了。本篇就来谈谈Java中的Date、Calendar,以及SimpleDateFor...转载 2018-07-21 16:29:29 · 545 阅读 · 0 评论 -
Rest、Restful和Jersey
1、什么是REST?REST不是"rest"这个单词Representational State Transfer 直接翻译:表现层状态转移,找到的一种最好理解的说法是:URL定位资源,用HTTP动词GET,POST,DELETE,DETC)描述操作。Resource:资源,即数据。Representational:某种表现形式,比如用JSON,XML,JPEG等;State...原创 2018-07-06 21:09:32 · 1236 阅读 · 0 评论