202206-18 Java基础:彻底搞懂java多线程 目录进程与线程使用多线程的优势线程的状态创建线程线程中断总结进程与线程进程进程是操作系统结构的基础,是程序在一个数据集合上运行的过程,是系统进行资源分配和调度的基本单位。进程可以被看作程序的实体,同样,它也是程序的容器。线程线程是操作系统调度的最小单元,也叫作轻量级进程。在一个进程中可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性。使用多线程的优势使用多线程可以减少程序的响应... 继续阅读 >
202206-13 Java toString方法重写工具之ToStringBuilder案例详解 apache的commons-lang3的工具包里有一个ToStringBuilder类,这样在打日志的时候可以方便的打印出类实例中的各属性的值。具体用法如下:importorg.apache.commons.lang3.builder.ToStringBuilder;importorg.apache.commons.lang3.builder.ToStringStyle;publicclassMessage{privateStringfrom;privateStringto;privateStringbody;publicStringgetFrom(){returnfrom;}publicvoidsetFrom(Stringfrom)... 继续阅读 >
202206-13 Java:详解Java中的异常 目录Java异常常见异常throw和throws的区别final、finally、finalize的区别总结Java异常Java中的异常:又称例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流异常的分类:Throwable:类是java语言中所有错误或异常的超类,这意味着只要指示错误或异常,那么肯定是thrawble子类的实例,但是事实上由于错误异常内容过于庞大,所以设计人员将它们分开来,这就是thrawble的两个子类,Error和ExceptionError类是... 继续阅读 >
202206-13 全面了解java中的异常处理 目录Java异常处理1.什么是异常2.Java异常类架构2.1Throwable类2.2Error类2.3Exception类3.如何进行异常处理4.抛出异常4.1实例4.2throw4.3throws5.捕获异常6.自定义异常7.异常链8.小结Java异常处理Java的异常处理是Java语言的一大重要特性,也是提高代码健壮性的最强大方法之一。当我们编写了错误的代码时,编译器在编译期间可能会抛出异常,有时候即使编译正常,在运行代码的时候也可能会抛出异常。目标什... 继续阅读 >
202206-10 java合成模式之神奇的树结构 目录什么是合成模式安全式合成模式抽象构件(Component)角色树叶构件(Leaf)角色树枝构件(Composite)角色使用透明式合成模式抽象构件(Component)角色树叶构件(Leaf)角色树枝构件(Composite)角色使用安全式和透明式什么是合成模式以下是互联网的解释。合成模式属于对象的结构模式,有时又叫做“部分——整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。... 继续阅读 >
202206-10 java中ThreadLocal的基本原理 目录基本流程ThreadLoalMap数据结构Hash冲突及解决ThreadLocal内存泄露内存引用链路引用类型为什么使用弱引用而不是强引用?泄露原因分析ThreadLocal应用场景源码实现一个线程内可以存多个ThreadLocal对象,存储的位置位于Thread的ThreadLocal.ThreadLocalMap变量,在Thread中有如下变量:/*ThreadLocalvaluespertainingtothisthread.Thismapismaintained*bytheThreadLocalclass.*/ThreadLocal.ThreadLocalMap... 继续阅读 >
202206-10 Java中Lambda表达式基础及使用 目录一、举例说明1、无参无返回1.1定义一个接口1.2接口实现类1.3测试类2、有参无返回代码示例3、有参有返回二、简单事项1、省略模式2、注意事项三、Lambda表达式和匿名内部类的区别1、所需类型不同:2、使用限制不同:3、实现原理不同:标准格式:三要素:形式参数箭头代码块格式:(形式参数)->{代码块}形式参数:如果多个参数用逗号隔开,无参留空->:英文中划线和大于号组成代码块:具体要做的事使用前提:有一个接口接口... 继续阅读 >
202206-07 Java NegativeArraySizeException异常解决方案 问题描述:服务器接收后台返回的报文时,提示java.lang.NegativeArraySizeException分析:这种异常返回的原因,一般情况下没有报文提示为返回空报文,初步分析是响应报文流长度出了问题百度一下类似的情况:https://stackoverflow.com/questions/11207897/negative-array-size-exception节选部分内容:try{connection=(HttpConnection)Connector.open("http://someurl.xml",Connector.READ_WRITE);URLEncodedPostData... 继续阅读 >
202206-07 Java Lambda 表达式源码解析 JavaLambda源码分析问题:Lambda表达式是什么?JVM内部究竟是如何实现Lambda表达式的?为什么要这样实现?一、基本概念1、Lambda表达式下面的例子中,()->System.out.println("1")就是一个Lambda表达式。Java8中每一个Lambda表达式必须有一个函数式接口与之对应。Lambda表达式就是函数式接口的一个实现。@Testpublicvoidtest0(){Runnablerunnable=()->System.out.println("1");runnable.run();... 继续阅读 >
202206-07 Java web.xml之contextConfigLocation作用案例详解 在web.xml中通过contextConfigLocation配置spring,contextConfigLocation参数定义了要装入的Spring配置文件。部署applicationContext.xml文件 如果不写任何参数配置,默认的是在/WEB-INF/applicationContext.xml 如果指定了要加载的文件,则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。如果没有指定的话,默认会去/WEB-INF/... 继续阅读 >
202205-30 java反射机制最详解 目录java反射机制什么是反射?反射的功能:反射常用类:1.Class枚举类2.Constructor构造器3.Method方法类4.Field变量类反射运行指示图通过反射获取对象总结java反射机制什么是反射?在java开发中有一个非常重要的概念就是java反射机制,也是java的重要特征之一。反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力,通过反射可以调用私有方法和私有属性,大部分框架也都是运用反... 继续阅读 >
202205-30 java 实现web项目启动加载properties属性文件 目录web项目启动加载properties属性文件1、首先要想在项目启动的时候就加载properties文件2、在web.xml文件中配置好了监听器之后3、当然为了不让项目启动报错4、文件建好之后出现加载java的properties配置文件空指针报错解决web项目启动加载properties属性文件最近做项目,发现框架里面封装的项目一启动加载所有的properties文件挺方便好用的就自己动手写了一个.1、首先要想在项目启动的时候就加载properties文件就必需在web.xml中... 继续阅读 >
202205-30 Java 内存模型(JVM) 目录前言一、什么是Java内存模型二、为什么需要Java内存模型三、顺序一致性内存模型四、Happens-Before规则前言在并发编程中,当多个线程同时访问同一个共享的可变变量时,会产生不确定的结果,所以要编写线程安全的代码,其本质上是对这些可变的共享变量的访问操作进行管理。导致这种不确定结果的原因就是可见性、有序性和原子性问题,Java为解决可见性和有序性问题引入了Java内存模型,使用互斥方案(其核心实现技术是锁... 继续阅读 >
202205-30 Java Date类的使用案例详解 Date类表示特定的瞬间,精确到毫秒。有2种方法可以创建Date对象(这里不考虑已过时的构造函数)1、publicDate()——分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。@Testpublicvoidtest1(){Datedate=newDate();System.out.println(date);}SunOct2322:39:14CST20162、publicDate(longdate)——根据给定的毫秒值创建日期对象。@Testpublicvoidtest2(){longtime=System.currentT... 继续阅读 >
202205-30 Java Calendar类使用案例详解 在实际项目当中,我们经常会涉及到对时间的处理,例如登陆网站,我们会看到网站首页显示XXX,欢迎您!今天是XXXX年。。。。某些网站会记录下用户登陆的时间,比如银行的一些网站,对于这些经常需要处理的问题,Java中提供了Calendar这个专门用于对日期进行操作的类,那么这个类有什么特殊的地方呢,首先我们来看Calendar的声明publicabstractclassCalendarextendsObjectimplementsSerializable,Cloneable,Comparable<C... 继续阅读 >
202205-27 Java 使用 HttpClient 发送 GET请求和 POST请求 目录概述认证方式基础认证Auth用户名密码认证BearerToken认证配置超时生成RequestConfig设置超时时间概述日常工作中,我们经常会有发送HTTP网络请求的需求,概括下我们常见的发送HTTP请求的需求内容:可以发送基本的GET/POST/PUT/DELETE等请求;HTTP请求,可以附带认证,包括基本的用户名/密码认证,以及BearerToken认证;请求可以自定义超时时间;HTTP请求可以带参数,也可以不带参数;HTTP请... 继续阅读 >