Java
文章平均质量分 68
myllxy
欢迎关注知乎专栏:https://www.zhihu.com/column/c_1274036496291827712
展开
-
知乎专栏
欢迎关注知乎专栏:Java学习之路原创 2020-10-27 10:52:05 · 166 阅读 · 0 评论 -
servlet的生命周期与tomcat
**servlet与tomcat打交道,tomcat与客户端打交道!**servlet是一个java代码,虽然它是具有生命周期的,但是这个生命周期的管理是又容器来管理:原创 2019-03-16 22:38:30 · 3629 阅读 · 0 评论 -
xml中的命名空间
其中xmlns="http://xmlns.jcp.org/xml/ns/javaee"表示默认的名称空间,可以省略所有子元素默认的前缀书写xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",该命名空间就可以直接使用的,不用指定xsdxsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"表原创 2018-09-27 15:34:04 · 215 阅读 · 0 评论 -
javac与javac -parameters区别
> javac -help> -parameters 生成元数据以用于方法参数的反射意思就是我们想获取方法中的参数名的话就要加这个参数**我们先看普通编译javac App.java**原创 2019-09-10 21:59:44 · 1080 阅读 · 0 评论 -
LinkedList源码阅读
LinkedList源码阅读原创 2018-09-27 15:02:49 · 3279 阅读 · 0 评论 -
ArrayList源码阅读
ArrayList源码阅读原创 2018-09-21 20:07:31 · 2912 阅读 · 0 评论 -
在注册模块查询后台user时解决空值问题
前端要做一个在注册时显示当前用户或者邮箱是否重复注册的ajax根据情况,后端需要返回3种json:{result=可以注册}{name=用户名重复}{email=邮箱重复}当可以注册时,后端从user表中查询到的是null,平时我们需要判断是否为null,但我们可以使用jdk8的Option更优雅地来处理这种问题。如下: /** * @param name 用户...原创 2019-12-30 09:07:19 · 366 阅读 · 0 评论 -
Java面试题与基础知识总结汇总
目录1.Arrays.asList返回的list和new创建出来的有什么区别?2.什么是面向接口编程思想,和面向对象有什么区别?3.什么是方法内联?4.什么是B/S架构?什么是C/S架构?5.JDK 和 JRE 有什么区别?6.final 在 java 中有什么作用?7.java 中的 Math.round(-1.5) 等于多少?1.Arrays.asList...原创 2018-12-04 17:16:29 · 4765 阅读 · 4 评论 -
JavaWeb实现基础增删改查CRUD的一个小Demo
一.层级展示二.dao和domaindao:domain:三.jdbcutiljdbcutil:MyBeanUtil:四.servlet五.流程六.关键代码逻辑查询:删除:添加和修改:UserServlet:gitee地址...原创 2019-10-29 19:04:44 · 1302 阅读 · 0 评论 -
设计模式之工厂模式
一.简单工厂模式1)简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式2)简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)3)在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式.思路:思路:把创建Pizza对象从main方法到一个...原创 2019-10-11 00:37:17 · 118 阅读 · 0 评论 -
HashMap与TreeMap的区别与联系
一.继承实现关系都继承了:AbstractMap都实现了:Cloneable, java.io.SerializableTreeMap 实现了 NavigableMapHashMap 实现了 Map二.存储方式HashMap:TreeMap:一个内部类 Entry三.判断重复的机制HashMap:基于hashCodekey:判断是否重复,先判断hashCode,如果has...原创 2019-09-29 21:19:21 · 548 阅读 · 0 评论 -
HashSet、TreeSet的区别与联系
一.继承实现关系都继承了AbstractSet都实现了Cloneable, java.io.Serializable二.存储方式HashSet:TreeSet:三.序列化机制两者内部都有readObject和writeObject方法源码中两者都有一个不同的backing:自己写序列化的原因也是因为避免序列化了缓存中没有实际存...原创 2018-12-31 22:36:50 · 274 阅读 · 0 评论 -
ArrayList、Vector的区别与联系
一.继承实现关系都实现了:List<E>, RandomAccess, Cloneable, java.io.Serializable都继承了:AbstractList<E>二.存储方式ArrayList:底层存储的是数组Vector:底层存储的是也是数组三.序列化机制我们可以看到,ArrayList中的底层存储数组是有一个 tran...原创 2018-11-27 10:12:34 · 600 阅读 · 0 评论 -
Arrays.asList的用法及理解
注意:对返回列表的更改会“直接写”到数组也就是说:那么原因是什么?进入 asList 类看看:返回的是一个 ArrayList,但是注意这个ArrayList并不是继承与List的那个ArrayList:它可并没有add()方法所以有这样的运行结果:由于ArrayList继承自AbstractList...原创 2019-09-23 23:14:13 · 387 阅读 · 0 评论 -
深入分析Java的序列化与反序列化 (一):序列化与反序列化
什么是序列化与反序列化:Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。使用Java对象序列化,在保存对象时,会把其状态保存为一组...原创 2019-09-17 10:04:47 · 196 阅读 · 0 评论 -
Enum枚举类的理解
枚举类的一个用处就是作为常量存储方式之一,如下:那么在底层,枚举类是如何实现的呢?我们通过 java -verbose 工具查看该类如下:一个final类继承java.lang.Enum,因此知道枚举类是不能被继承的2.我们可以看到我们自定义的枚举类中的属性在底层其实也是static final的常量,不过在这里还没有初始化3.其中putstatic字节码:为指定的类...原创 2019-09-30 00:35:47 · 436 阅读 · 0 评论 -
java.io.StreamCorruptedException: invalid stream header
今天用一个 ObjectInputStream 封装一个字节数组输入流,报了以下错误:后来查了一下 stackoverflow :再去看API:原来,ObjectInputStream 只能接手从 ObjectOutputStream 写入的数据,换句话说,你不能用 ObjectInputStream 将一个任意的文件或字符串写入到内存,我的错误代码如下:如果你想像上面一样往一个文...原创 2019-09-12 18:53:14 · 14441 阅读 · 0 评论 -
Object中的equals和hashcode方法
equals() 和 hashcode() 是 java.lang.Object 中提供的用以对象比较的两个重要方法,下面是其定义及默认实现:public boolean equals(Object obj) { return (this == obj); }:用以判断变量参数与当前实例是否相等,JDK默认实现是基于对象内存地址是否相同,如果两个对象内存地址相同,则表示两个对象相同。publ...原创 2019-08-30 23:13:05 · 1104 阅读 · 0 评论 -
jvm类初始化条件
1.虚拟机启动时,指定一个要执行的主类,虚拟机会优先初始化这个(带main方法的)主类public class TestMode { static { System.out.println("会触发类的初始化"); } public static void main(String[] args) { }}2.通过数组定义来引用类,不会触发类的初始化 class ...原创 2018-11-13 16:50:38 · 223 阅读 · 0 评论 -
java中String、StringBuilder、StringBuffer区别与联系
由一道面试题开始:/*这段代码去掉final之后结果完全不一样*/public class TestMode { public static void main(String[] args) { final String a = "1"; final String b = "2"; String c = a + b; String d = "12"; System....原创 2019-05-03 21:59:18 · 3048 阅读 · 0 评论 -
Java中定义常量的几种方法
Interface定义常量方法Class定义常量方法这两者有什么区别呢?1.代码简洁2. interface 中定义常量方法生成的 class 文件比第一种方法的更小为什么小呢?我们都知道 interface 没有继承 Object,Object 是所有类的基类,所以 interface 不是类。Java 在编译之后会在字节码文件中生成 <init> 方法,称之为实例...原创 2019-05-12 20:09:04 · 84442 阅读 · 7 评论 -
Java 项目开发常用方法
1.通过类加载器加载配置文件这里 load 需要一个流,然后getResourceAsStream 加载文件并将它作为流传递给 load。原创 2019-05-13 10:02:35 · 765 阅读 · 0 评论 -
如何理解前后端分离
如何理解前后端分离原创 2019-07-12 21:07:32 · 356 阅读 · 0 评论 -
设计模式中的依赖倒转
一.依赖倒转的作用思考接口在这里的作用是什么看一个代码:package nsu.myllxy;/** * @author nsu_zk * @create 2019-07-15 15:56 */public class People { public static void main(String[] args) { PeopleDemo people =...原创 2019-07-15 16:45:07 · 112 阅读 · 0 评论 -
jvm内存模型
一、JVM 内存模型根据 JVM 规范,JVM 内存共分为 虚拟机栈、堆、方法区、程序计数器、本地方法栈 五个部分。1.虚拟机栈Java虚拟机栈(Java Virtual Machine Stacks)也是 线程私有的,它的 生命周期与线程相同。虚拟机栈描述的是Java方法执行的内存模型:每个方法在执行的同时 都会创建一个栈帧用于存储 局部变量表、操作数栈、动态链接、方法出口 等信息。每一...原创 2019-07-24 18:35:16 · 383 阅读 · 2 评论 -
Java IO流 File_API(2)
案例一:package myllxy.nsu;import java.io.File;/** * @author nsu_zk * @create 2019-08-02 21:22 * 打印所有目录及其下的文件 */public class FileDemo3 { public static boolean flg = false; public static...原创 2019-08-02 22:41:10 · 108 阅读 · 0 评论 -
Java SE中Object类
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。一.hashCode()方法想要弄明白hashCode的作用,必须要先知道Java中的集合。 总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set。前者集合内的元素是有序的,元素可以重复;后者元素无序,但元素不可重复。这里就引出一个...原创 2019-07-25 21:26:51 · 193 阅读 · 0 评论 -
Java动态连接
当编译一个Java程序的时候,会得到程序中每个类或者接口的独立的class文件,当程序运行的时候,JVM转载程序的类和接口,在动态连接的过程中把它们互相勾连起来。Class文件把它所有的符号引用保存在常量池。常量池:每一个被JVM装载的类或接口都有一份内部版本的常量池运行时常量池:常量池中的符号引用被解析后放入运行时常量池因此,当一个类型被首次装载时,所有来自该类型的符号引用都装载到了...原创 2019-07-30 22:46:50 · 9104 阅读 · 0 评论 -
Java IO流 常用输入输出流总结
FileInputStream:package myllxy.nsu;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * @author nsu_zk * @create 2019-08...原创 2019-08-03 18:27:03 · 136 阅读 · 0 评论 -
Java IO流 File_API(1)
一.常量separatorChar:此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 ‘/’;在 Microsoft Windows 系统上,它为 ‘’。pathSeparatorChar:此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX...原创 2019-08-01 22:24:24 · 163 阅读 · 0 评论 -
Java中加载配置文件的方式
方式一:创建一个FileInputStream流加载配置文件方式二:通过类加载器加载配置文件方式三:用ResourceBundle读取配置文件如果是在使用到配置文件的时候再去加载,可能会因为IO造成的时间损耗较大,所以可以使用ResourceBundle在类加载的时候提前读取配置文件中的内容并放到指定数据结构中(比如hashmap),一定程度上可以减少程序执行的时间...原创 2019-08-13 16:16:32 · 568 阅读 · 0 评论 -
Java IO流 字符输入输出
字符输入package myllxy.nsu;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;/** * 字符输入 * @author nsu_zk * @create 2019-08-22 10:31 */public class IODem...原创 2019-08-22 11:45:22 · 202 阅读 · 0 评论 -
Java如何实现深拷贝
一.深拷贝与浅拷贝浅拷贝基本介绍对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该成员变量都指向同一个实例。在这种情况下,在一个对象中修改该成员变量会影响...原创 2019-08-28 18:42:02 · 6743 阅读 · 0 评论 -
Java ClassLoader
一:有哪些类加载器1.启动(Bootstrap)类加载器:启动类加载器主要加载的是JVM自身需要的类,这个类加载使用C++语言实现的,除此之外的类加载器都是由java编写(限Hotspot中,诸如MRP等虚拟机,整个虚拟机本身都是由java编写),是虚拟机自身的一部分,它负责将 <JAVA_HOME>/lib路径下的核心类库或-Xbootclasspath参数指定的路径下的ja...原创 2018-10-14 13:13:57 · 415 阅读 · 0 评论