Java基础
不想说话的猴子
荣耀背后刻着一道孤独。
展开
-
对象拷贝
在说对象拷贝问题之前,我们先看看JVM内存模型,看看对象是怎么在内存里存在的。对象实例实在堆内存里,它的引用(指针)在被使用时候,被栈里的user所持有。这也可以说明,我们平时在开发时候,对于对象属性修改时候,对应的对象都会变化。概述深拷贝对应的反面是浅拷贝,先做个统一的大白话定义:浅拷贝:增加了一个指针,指向已存在的内存地址(原对象地址)深拷贝:增加了一个指针,指向新的内存地址(新对象地址)拷贝类型:基本类型(boolean、byte、char、int、short、float、long、原创 2020-12-02 16:31:28 · 245 阅读 · 0 评论 -
Java日志体系
日志Java体系日志很多,一直没有整理,乱乱的。好,我们先来看看日志框架组件以及大致处理流程:Loggers:Logger负责捕捉事件并将其发送给合适的AppenderAppenders:也称为Handlers,负责从Logger中取出日志消息,并使用Layout来格式化消息,然后将消息发送出去,比如发送到控制台、文件或其他日志收集系统。Layouts:也称为Formatters,负责对日志事件进中的数据进行转换和格式化。Filters:过滤器,根据需要定制哪些信息会被记录,哪些信息会被放过。原创 2020-11-21 10:50:15 · 1307 阅读 · 0 评论 -
Java单元测试
在阿里巴巴Java开发手册,对于单元测试有如下描述,我大致抽象了下:错误意识那是测试同学干的事情,单元测试代码是多余的!汽车的整体功能与各单元部件的测试正常与否是强相关?(认知需转变)单元测试代码不需要维护!一年半载后,那么单元测试几乎处于废弃状态。(跟随业务维护)单元测试与线上故障没有辩证关系!好的单元测试能够最大限度地规避线上故障(做比没做要好)AIR 原则单元测试在线上运行时候,感觉像空气(air)一样并不存在,但是在质量保证上却又十分关键。A:Automatic(测试框架通常原创 2020-10-09 11:49:25 · 411 阅读 · 0 评论 -
LinkedList实现栈、队列或者双端队列分析
LinkedList实现了Deque和Queue接口,可以按照队列、栈和双端队列的方式进行操作Queue里面的方法Queue扩展了Collection,它的主要操作有三个(每个操作2个方法,有些队列的实现室友长度限制的,LinkedList实现queue没长度限制):在尾部添加元素 (add, offer):add()会在长度不够时抛出异常:IllegalSta原创 2016-10-08 15:08:59 · 7441 阅读 · 0 评论 -
Java的泛型声明使用
泛型一直在使用,没做个小结,今天简单介绍下首先java的泛型是个伪泛型,它就是个java中类型的参数化(可以理解为java类型的一个符号),只在编译阶段存在,作用是类型的检查,防止运行时抛出异常。泛型的声明:是在<>里面,其中<>里面只能是类,而不能是基本类型。声明可以在类<泛型参数>,类似public class Test;或者方法定义时候,类似 public...原创 2016-09-27 17:08:31 · 5142 阅读 · 0 评论 -
多线程
前言:目前大部分操作系统都是以线程为CPU调度和分派基本单位。多线程在日常程序中运用的还是比较多的,潜在的我们web容器帮我们在http层面可以同时处理多个请求,这些可能多我们是无感的。平常的开发中,我们需要结合业务场景来合理运用多线程,例如大文件的IO操作,大量消息发送,都可以运用多线程来处理,充分利用多核CPU性能。本文主要介绍2个方面:1:创建线程几种方式,包含Java8方式(建议使用,...原创 2018-06-26 11:56:29 · 152 阅读 · 0 评论 -
ServletConfig对象,ServletContext对象应用
1.ServletConfig对象2.ServletContext对象1)注意:用类装载器读取资源文件时,千万要注意,资源文件绝对不能太大,否则极易导致内存溢出转载 2015-05-12 10:18:37 · 358 阅读 · 0 评论 -
http协议讲解
1.请求方法(所有方法全为大写)有多种,各个方法的解释如下:GET 请求获取Request-URI所标识的资源POST 在Request-URI所标识的资源后附加新的数据HEAD 请求获取由Request-URI所标识的资源的响应消息报头PUT 请求服务器存储一个资源,并用Request-URI作为其标识DELETE 请求服务器删除Request-URI所标原创 2015-05-13 10:03:26 · 432 阅读 · 0 评论 -
泡妞与23种设计模式
创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改转载 2015-05-29 14:02:17 · 1224 阅读 · 0 评论 -
java中Serializable接口的理解
最近在阅读JDK源码中的集合,看到很多集合类实现了Serializable接口,Cloneable接口。在阅读了很多关于Serializable接口的博客后,浅谈下我对Serializable接口的理解。序列化查看 官方文档 就会发现 Serializable接口中一个成员函数或者成员变量也没有。那么这个接口的作用是什么呢。网上找了一些博客看过之后,知道这个接口的作用是实现序列化。转载 2016-09-27 16:11:06 · 6988 阅读 · 0 评论 -
java的动态代理
Java 动态代理机制分析及扩展,第 1 部分本文通过分析 Java 动态代理的机制和特点,解读动态代理类的源代码,并且模拟推演了动态代理类的可能实现,向读者阐述了一个完整的 Java 动态代理运作过程,希望能帮助读者加深对 Java 动态代理的理解和应用。11 评论王 忠平, 软件工程师, IBM何 平, 软件工程师, IBM2转载 2016-08-25 12:29:31 · 339 阅读 · 0 评论 -
java的路径问题
以前对于路径和导出war后里面的一些文件需要放置在哪里问题,一直是似懂非懂,今天就做个小记录类路径是在war包里面是指classes目录下的路径,项目路径就是war包解压后的路径,一般情况下我们是把编译后的class文件放在WEB-INF里面的。在导出war包的时候我们在Web Deployment Assembly这样设置即可。原创 2016-04-27 17:16:20 · 347 阅读 · 0 评论 -
序列化的作用
是对象永久化的一种机制。确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。 对象序列化的最主要的用处就是在传递,和保存对象(object)的时原创 2016-03-07 10:26:27 · 367 阅读 · 0 评论 -
Synchronized和ThreadLocal使用的比较
在同步机制中,通过对象的锁机制保证同一时间只有一个线程访问变量。这时该变量是多个线程共享的,使用同步机制要求程序慎密地分析什么时候对变量进行读写,什么时候需要锁定某个对象,什么时候释放对象锁等繁杂的问题,程序设计和编写难度相对较大。ThreadLocal则从另一个角度来解决多线程的并发访问。ThreadLocal会为每一个线程提供一个独立的变量副本,从而隔离了多个线程对数据的访问冲突。因为每一个线原创 2016-03-04 16:33:50 · 1043 阅读 · 1 评论 -
有关JSP放在WEB—INF下访问的问题
一般我们开发都把JSP放在webRoot下,但有时为了安全考虑,把它放在WEB-INF下,这是我们访问jsp就需要运到转发forward有两种方式:1.struts.xml文件中配置 2.Action中写request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);原创 2015-11-27 14:36:25 · 683 阅读 · 0 评论 -
Java 枚举类型应用场合
DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。用法一:常量在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 public enum Color {转载 2015-10-19 10:42:35 · 697 阅读 · 0 评论 -
ArrayList自动扩容解析
探索ArrayList ArrayList的列表对象实质上是存储在一个引用型数组里的,有人认为该数组有“自动增长机制”可以自动改变size大小。正式地说,该数组是无法改变 大小的,实际上它只是改变了该引用型数组的指向而已。下面,让我们来看看java是怎样实现ArrayList类的。一、ArrayList类的实质ArrayList底层采用Object类型的数组实现,当使用不带参数的构造方法生...转载 2016-09-27 23:26:51 · 14421 阅读 · 0 评论