
java
文章平均质量分 71
xsj_blog
这个作者很懒,什么都没留下…
展开
-
双列集合
Map 接口简介JDK 提供的 Map 接口,是一种双列集合,它的每个元素都包含一个键对象Key 和一个值对象 Value。映射:键和值对象之间存在一种对应关系。从 Map 集合中访问元素时,只要指定了 Key,就能找到对应的 ValueMap 集合常用方法表如下: 方法声明 功能描述 void put(Object key, Object value) 将指定的值与此映射中指定键关联原创 2017-09-09 19:55:57 · 586 阅读 · 0 评论 -
Java 成员变量的默认值
如果我们不做任何初始化工作,变量具有什么默认值,或者是否具有默认值? 其实,成员变量在创建时,系统会为其分配一个默认值。不同类型的变量,默认值也不相同。 例:package deep;public class DefaultValue { // 实例成员变量 private boolean bool; private byte b; privat...转载 2018-04-20 14:38:44 · 18007 阅读 · 0 评论 -
Maven面试题
1、Maven有哪些优点和缺点 优点如下:简化了项目依赖管理: 易于上手,对于新手可能一个”mvn clean package”命令就可能满足他的工作 便于与持续集成工具(jenkins)整合 便于项目升级,无论是项目本身升级还是项目使用的依赖升级。 有助于多模块项目的开发,一个模块开发好后,发布到仓库,依赖该模块时可以直接从仓库更新,而不用自己去编译。maven有很多插件,便于...转载 2018-04-20 15:06:10 · 2896 阅读 · 0 评论 -
System.currentTimeMillis()计算方式与时间的单位转换
一、时间的单位转换1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s)1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s)1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s)1秒=1,000,000,000,000 皮秒(ps) 1皮秒=1/1,000,000,000,000秒(s)1分钟=60秒1小时=60...转载 2018-10-12 16:47:43 · 16555 阅读 · 1 评论 -
StringUtils 使用
一、StringUtils中 isNotEmpty 和isNotBlank的区别isNotEmpty(str)等价于 str != null && str.length > 0isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length &转载 2018-10-12 17:15:57 · 1202 阅读 · 0 评论 -
Java中关键字throw和throws的区别
抛出异常有三种形式throwthrows系统自动抛异常一、系统自动抛异常当程序语句出现一些逻辑错误、主义错误或类型转换错误时,系统会自动抛出异常:(举个栗子)public static void main(String[] args) { int a = 5, b =0; System.out.println(5/b); // 此处系统会自动抛出Arithm...原创 2018-10-12 17:30:24 · 33754 阅读 · 4 评论 -
Java中枚举类型 Enum
枚举例子如下:public enum Status { SCUUESS("1", "成功"), FAILED("2", "失败"); private String value; private String desc; public String getValue() { return value; } public voi...原创 2018-10-15 17:28:36 · 666 阅读 · 0 评论 -
this 关键字
一、通过 this 关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题。class Person { int age; public Person(int age) { this.age = age; } public int getAge() { return this.age; }}二、通过 this 关键字调用成员方法。class Person {...原创 2018-10-15 22:02:35 · 2497 阅读 · 0 评论 -
对象与字符串的相互转换
package xxx.xxx.xxx;import java.io.IOException;import org.springframework.util.StringUtils;import com.fasterxml.jackson.databind.ObjectMapper;public class JsonUtils { private static ObjectMa...原创 2018-10-17 10:04:39 · 4334 阅读 · 0 评论 -
Json 的构建与解析
Json 介绍:Json 是一种与开发语言无关的、轻量级的数据格式。全称JavaScript Object Notation。优点是易于人的阅读和编写,易于程序解析与生产标准的JSON数据表示:数据结构:Object、Array基本类型:string、number、true、false、null标准的JSON数据演示:{ "name": "王小二", "age": 25, &原创 2019-02-21 00:27:37 · 619 阅读 · 0 评论 -
java多线程 wait和notify方法
public class ProductTest { public static void main(String[] args) { Clerk clerk = new Clerk(); Producter producter = new Producter(clerk); Consumer consumer = new Consume...原创 2019-03-25 14:48:18 · 1348 阅读 · 0 评论 -
Java 多线程
创建线程的三种方式第一种:通过继承Thread来创建线程,并重写 Thread 类中的 run 方法,通过调用 start 方法,但这种方式只允许单继承@NoArgsConstructor@Setterclass ThreadDemo extends Thread { private String threadName; // 重写线程父类 Thread 的 r...原创 2019-03-24 13:04:15 · 136 阅读 · 0 评论 -
利用建造者(Builder)模式构建 Java 对象
简介:一般我们构建对象有两种方法,一是构造器,二是默认无参构造器创建对象后使用 set 方法一个个赋值。第一种方法我们需要写一个全参的构造方法,但这样我们在构造对象时有一些不需要填写的对象也要给他赋值,而且对应参数可能弄混(虽然强大的 idea 可以清楚的提示),第二种方法很清晰,但代码冗余,写起来也累。如果类中变量不多,用哪种方法都差不多,但如果变量很多,或者说构建对象时需要传入的参数很多,我...转载 2019-07-25 20:09:12 · 2940 阅读 · 0 评论 -
Java创建对象的过程简介
Java创建对象的过程简介一、检测类是否被加载当虚拟机执行到new时,会先去常量池中查找这个类的符号引用。若找到符号引用,说明此类已经被加载到方法区(方法区存储虚拟机已经加载的类的信息),可以继续执行若找不到符号引用,就会使用类加载器执行类的加载过程,类加载完成后继续执行。二、为对象分配内存类加载完成以后,虚拟机就开始为对象分配内存,此时所需内存的大小就已经确定了。只需要在堆上分配...原创 2019-09-04 11:58:34 · 919 阅读 · 0 评论 -
Java 内存模型
一、Java 程序执行流程由于Java程序是交由JVM执行的,所以我们在谈Java内存区域划分的时候事实上是指JVM内存区域划分。在讨论JVM内存区域划分之前,先来看一下Java程序具体执行的过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JVM执行引擎执行。在...原创 2019-09-04 14:38:36 · 214 阅读 · 0 评论 -
mybatis 面试题
1、Mybatis比IBatis比较大的几个改进是什么 答:有接口绑定,包括注解绑定sql和xml绑定Sql ,动态sql由原来的节点配置变成OGNL表达式,在一对一,一对多的时候引进了association,在一对多的时候引入了collection节点,不过都是在resultMap里面配置2、什么是MyBatis的接口绑定,有什么好处 答:接口映射就是在IBatis中任意定义...转载 2018-04-20 11:41:25 · 3102 阅读 · 0 评论 -
Java String类型转换成Date日期类型
插入数据库时,存入当前日期,需要格式转换import java.text.SimpleDateFormat;formatter = new SimpleDateFormat( "yyyy-MM-dd ");String date = formatter.format(new Date());//格式化数据,取当前时间结果为 2014-10-30String格式的数据转化成Date格...原创 2018-04-13 18:26:47 · 98657 阅读 · 3 评论 -
java 字符串截取的方法
第一种方式:split()+正则表达式来进行截取String str = "你好,怎么称呼"String[] strs = str.split(",");for(int i=0, len=strs.length; i<len; i++){ System.out.println(strs[i].toString());}运行结果:你好怎么称呼第二种方式:通过...原创 2018-04-13 18:18:12 · 597 阅读 · 0 评论 -
Java集合常用类
常用集合类的结构如下图集合框架集合的两个顶级接口分别为:单列集合Collection 和 双列集合Map单列集合(Collection)和双列集合(Map)特点如下一、Collection:单列集合类的根接口,有两个重要的子接口,即 List 和 SetList 接口特点是元素有序、元素可重复,主要实现类有 ArrayList、LinkedList、VectorA...原创 2017-09-09 12:03:14 · 347 阅读 · 0 评论 -
java 多线程
线程概述多任务操作系统,即能够同时执行多个应用程序,最常见的有 Windows、Linux、UNIX等。在一个操作系统中,每个独立运行的程序都可以称为一个进程,即“正在运行的程序”。在多任务操作系统中,例如可以一边听音乐一边聊天,但实际上这些进程并不是同时运行的。在计算机中,所有的应用程序都是由 CPU 执行的,对于一个 CPU 而言,在某个时间点只能运行一个程序,即只能执行一个进程。由于 CPU原创 2017-09-10 16:58:32 · 439 阅读 · 0 评论 -
单列集合
Collection 接口方法Collection 是所有单列集合的父接口,因此在 Collection 中定义了单列集合(List 和 Set)通用的一些方法,如下 方法声明 功能描述 boolean add(Object o) 向集合中添加一个元素 boolean addAll(Collection c) 向指定 Collection 中的所有元素添加到该集合中 voi原创 2017-09-09 12:49:00 · 644 阅读 · 0 评论 -
Collections 工具类
JDK 中提供了一个工具类专门用来操作集合,即 Collections,它位于 java.util 包中。Collections 类中提供了大量的方法用于对集合中的元素进行排序、查找和修改等操作。排序操作 方法声明 功能描述 static boolean addAll(Collection c, T… elements) 将所有指定元素添加到指定的 collection 中 s原创 2017-12-17 10:47:05 · 372 阅读 · 0 评论 -
static关键字、final 关键字
final 关键字可用于修饰类、变量和方法,它有 “这是无法改变的” 或者 “最终” 的含义,因此被 final 修饰的类、变量和方法将具有以下特性:final 修饰的类不能被继承final 修饰的方法不能被子类重写final 修饰的变量(成员变量和局部变量)是常量,只能赋值一次。原创 2017-12-17 11:39:16 · 429 阅读 · 0 评论 -
内部类
在 Java 中,允许在一个类的内部定义类,这样的类称作内部类,这个内部类所在的类称作外部类。根据内部类的位置、修饰符和定义的方式可分为成员内部类、静态内部类、方法内部类。成员内部类在一个类中,除了可以定义成员变量、成员方法,还可以定义类,这样的类被称作成员内部类。在成员内部类中可以访问外部类的所有成员。Example.java 示例代码:class Outer{ private int n原创 2017-12-17 16:17:18 · 359 阅读 · 0 评论 -
泛型
集合可以存储任何类型的对象,但是当把一个对象存入集合后,集合会忘记这个对象的类型,将该对象从集合中取出时,这个对象的编译类型就变成了 Object 类型。换句话说,在程序中无法确定一个集合中的元素到底是什么类型的,那么在取出元素时,如果进行强制类型转换就很容易出错。 通过案例演示这种情况:import java.util.ArrayList;public class Example{ p原创 2017-12-17 12:32:24 · 3150 阅读 · 1 评论 -
static 关键字
静态变量有时候,我们希望某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象所共享。例如某个学校所有学生共享同一个学校名称,此时完全不必在每个学生对象所占用的内存空间中都定义一个变量来表示学校名称,而可以在对象以外的空间定义一个表示学校名称的变量让所有对象来共享。使用 static 关键字修饰成员变量,该变量被称作静态变量。静态变量被所有实例共享,使用 “类名.变量名” 的形式来访问,也可以原创 2017-12-17 15:39:55 · 256 阅读 · 0 评论 -
Arrays 工具类
JDK 提供了一个工具类专门用来操作数组的工具类,即 Arrays,该 Arrays 工具类提供了大量的静态方法排序Arrays 工具类中的静态方法 sort() 可以对数组进行排序。Example.java 示例代码:import java.util.*;public class Example { public static void main(String[] args){原创 2017-12-17 11:23:30 · 7762 阅读 · 0 评论 -
Object 类
Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。 Object类是Java中唯一没有父类的类。 其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。 方法声明 功能描述 protected object clone() 创建并返回此对象的副本 boolean equals(Object obj) 指示一些其他对象是否等于此原创 2017-12-19 16:58:36 · 649 阅读 · 0 评论 -
给 Java 应用打包
在 JDK 中,提供了一个 jar 命令,即能将多个类打包成一个扩展名为 .jar 的 jar 文件。 jar 文件的全称是 Java Archive File,即 Java 档案文件,它是一种压缩文件,独立于任何操作系统平台,习惯上也将 jar 文件称为 jar 包。在使用 jar 包时,只需要在 classpath 环境变量中包含这个 jar 文件的路径,Java 虚拟机就能自动在内存中解压这...原创 2018-03-04 11:53:35 · 830 阅读 · 0 评论 -
Ubuntu 安装、卸载JDK
JDK 介绍Open JDK 和 Oracle JDK区别OpenJDK是Java开发工具包的开源实现Oracle JDK是Java开发工具包的官方Oracle版本尽管OpenJDK已经足够满足大多数的案例,但是许多程序比如Android Studio建议使用Oracle JDK, 以避免UI/性问题OpenJDK 安装与卸载OpenJDK 安装 在终端,输入以下...原创 2018-03-12 18:52:51 · 9972 阅读 · 1 评论 -
国内牛逼的maven仓库,速度杠杠滴
配置很简单,修改conf文件夹下的settings.xml文件,添加如下镜像配置:<mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com原创 2018-03-12 18:54:05 · 955 阅读 · 0 评论 -
Java面试题全集(上)
1、面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变化中的软件系统有了一定的延续性,...转载 2018-04-18 14:07:08 · 273 阅读 · 0 评论 -
Java 静态绑定和动态绑定
绑定:一个方法的调用与方法所在的类关联起来。 静态绑定:(final、static、private)在程序执行前已经被绑定,也就是说在编译过程中就已经知道这个方法是哪个类的方法,此时由编译器获取其他连接程序实现。 动态绑定:在运行根据具体对象的类型进行绑定。一、静态绑定 private:不能被继承,则不能通过子类对象调用,而只能通过类本身的对象进行调用,所以可以说private方法和方法...原创 2018-04-18 16:52:02 · 671 阅读 · 1 评论 -
JAVA垃圾回收
一、为什么要进行垃圾回收?随着程序的运行,内存中存在的实例对象、变量等信息占据的内存越来越多,如果不及时进行垃圾回收,必然会带来程序性能的下降,甚至会因为可用内存不足造成一些不必要的系统异常。二、哪些“垃圾”需要回收?如果某个对象已经不存在任何引用,那么它可以被回收。三、什么时候进行垃圾回收?1、引用计数算法每个对象添加一个引用计数器,每被引用一次,计数器加1,失去引用,计数器减1,...转载 2019-10-04 17:21:25 · 2071 阅读 · 0 评论