Java
文章平均质量分 57
blues_ygw
这个作者很懒,什么都没留下…
展开
-
Java--log4j日志级别
日志的输出都是分级别的,不同的设置不同的场合打印不同的日志。下面拿最普遍用的Log4j日志框架来做个日志级别的说明,其他大同小异。Log4j的级别类org.apache.log4j.Level里面定义了日志级别,日志输出优先级由高到底分别为以下8种。日志级别 | 描述 ---|--- OFF | 关闭:最高级别,不打印日志。 FATAL | 致命:指明非常严重的可能会导致应用终止执行错误事件。 ERROR | 错误:指明错误事件,但应用可能还能继续运行。 WARN | 警告:指明可能潜在原创 2021-07-02 17:27:05 · 415 阅读 · 1 评论 -
Java--多任务并发:如何判断线程池中的任务都已经执行完毕
前言:多线程并发,我们往往采用线程池来管理并发的线程。但是,我们往往有这样的需要:要求在线程池中的任务都完成后才能执行后续的任务,或者需要任务都完成后释放资源或向数据库写入状态。这些都需要我们判断线程池的任务是否都已经完成。判断线程池中的任务是否全部完成,方式有不少,这里我来整理一下。一、使用线程池的原生函数isTerminated();优点:操作简便;缺点:需要主线程阻塞;executor提供一个原生函数isTerminated()来判断线程池中的任务是否全部完成。全部完成返回tru原创 2020-12-28 09:08:32 · 2605 阅读 · 0 评论 -
Java--HttpRequest对象
概述:1、服务器接收http请求后,会根据报文创建HttpRequest对象2、视图的第一个参数就是HttpRequest对象3、django创建的,之后调用试图时传递给视图属性:1、path:请求的完整路径(不包括域名和段口)2、method:表示请求的方式。常用的有GET、POST3、encoding:表示浏览器提交的数据的编码方式,一般为utf-84、GET:类似字典的对象,包含了get请求的所有参数5、FILES:类似字典的对象,包含了所有上传的文件6、Coo原创 2020-11-24 15:47:22 · 957 阅读 · 0 评论 -
Java--HTTP Request Header 请求头
Accept 指定客户端能够接收的内容类型 Accept: text/plain, text/html Accept-Charset 浏览器可以接受的字符编码集。 Accept-Charset: iso-8859-5 Accept-Encoding 指定浏览器可以支持的web服务器返回内容压缩编码类型。 Accept-Encoding: compress, gzip Accept-Language 浏览器可接受的语言 Accept-Language原创 2020-11-24 15:46:32 · 1691 阅读 · 0 评论 -
Java--VO、DTO、DO、PO、Entity、JavaBean简单说明
VO、DTO、DO、PO、Entity、JavaBean简单说明概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低...翻译 2020-04-13 10:45:45 · 1584 阅读 · 0 评论 -
Java--ab和jmeter进行GET/POST压力测试的使用心得和比较
引言: 互联网服务压测是非常重要的评价方法,ab,webbench,jmeter等都是业界流行的测试工具,ab和webbench作为shell模式下轻量级的测试工具,jmeter则作为有GUI界面的更高级测试工具,各有特点,ab比webbench功能更多一些,所以这里选择ab和jmeter来做一个对比。【测试环境的安装】【ab】ab就是Apache Benchmark的缩写,顾名思义它是Apach...翻译 2018-03-14 11:40:46 · 977 阅读 · 0 评论 -
Java--动态代理机制详解
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口,一...翻译 2018-03-31 16:40:37 · 195 阅读 · 0 评论 -
Java--几种线程池类型介绍及使用
一、线程池使用场景单个任务处理时间短将需处理的任务数量大二、使用Java线程池好处1.使用new Thread()创建线程的弊端:每次通过new Thread()创建对象性能不佳。线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。缺乏更多功能,如定时执行、定期执行、线程中断。2.使用Java线程池的好处:重用存在的线程,减少对象创建、消亡的开销,提升性能。...翻译 2018-06-14 09:21:31 · 407 阅读 · 0 评论 -
Java--json与javaBean互转
一、java普通对象和json字符串的互转java对象---->json首先创建一个java对象: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...翻译 2018-11-21 10:44:48 · 720 阅读 · 0 评论 -
设计--UML语言中五大视图和九种图形纵览
UML语言纵览视图UML语言中的视图大致分为如下5种:1、用例视图。用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能。2、逻辑视图。逻辑视图从系统的静态结构和动态行为角度显示如何实现系统的功能。3、组件视图。组件视图显示代码组件的组织结构。4、并发视图。并发视图显示系统的并发性,解决在并发系统中存在的通信和同步问题。5、配置视图。配置视图显示系统...原创 2019-06-03 11:36:23 · 2948 阅读 · 0 评论 -
设计--UML组成
UML由视图(View)、图(Diagram)、模型元素(Model Element)和通用机制(General Mechanism)等几个部分组成。a) 视图(View): 是表达系统的某一方面的特征的UML建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。b) 图(Diagram): 是模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。...原创 2019-06-03 11:41:01 · 3801 阅读 · 0 评论 -
设计--软件架构视图 4+1视图
什么是软件架构视图那么,什么是软件架构视图呢?Philippe Kruchten在其著作《Rational统一过程引论》中写道:一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了于此方面无关的实体。也就是说,架构要涵盖的内容和决策太多了,超过了人脑"一蹴而就"的能力范围,因此采用"分而治之"的办法从不同视角分别设计;同时,也为软件架构...原创 2019-06-04 16:58:18 · 15534 阅读 · 0 评论 -
Java设计模式--代理模式
代理模式在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者...翻译 2018-03-05 14:07:12 · 103 阅读 · 0 评论 -
Java设计模式--原型模式
原型模式原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减...翻译 2018-03-05 14:06:06 · 90 阅读 · 0 评论 -
Java设计模式--建造者模式
建造者模式建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"...翻译 2018-03-05 14:05:06 · 111 阅读 · 0 评论 -
Java--java操作excel的两种方式
Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进行操作,在这篇博客中将为大家介绍两种操作Excel的方式,分别为:jxl和poi。对于两者的区别网上有测试如下:测试结果 类型 数据量(行) 执行时间(ms) 执行时间(ms) 执行时间(ms) 平均时间(ms) POI 1000 579 562 5...翻译 2018-02-27 09:09:21 · 210 阅读 · 0 评论 -
Java--线程池ThreadpoolExecutor机制
ThreadPoolExecutor机制一、概述1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务;2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。同时可翻译 2018-02-06 16:27:12 · 231 阅读 · 0 评论 -
Java--多线程问题总结
前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就翻译 2018-02-07 10:13:01 · 144 阅读 · 0 评论 -
Java--JDK中常用包及其类和功能详细剖析
JDK所提供的所有标准Java类都存放在Java包中,如java.lang包中包含了运行Java必不可少的系统类。由于系统会自动将java.lang引入,所以不需要在源文件中用import语句来显示地引入这个包。另外,Java跪地过java.util和java.io是必须提供的标准包,在JDK中常用的包有以下几种:1.java.lang:语言包2.java.util:实用包3.java.awt:抽...翻译 2018-02-27 16:36:52 · 759 阅读 · 0 评论 -
Java--int与Integer的区别
int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0延伸: 关于Integer和int的比较 1、由于I...翻译 2018-03-02 10:17:05 · 126 阅读 · 0 评论 -
Java--使用ExecutorCompletionService 管理线程池处理任务的返回结果
在我们日常使用线程池的时候,经常会有需要获得线程处理结果的时候。此时我们通常有两种做法。1. 使用并发容器将callable.call() 的返回Future存储起来。然后使用一个消费者线程去遍历这个并发容器,调用Future.isDone()去判断各个任务是否处理完毕。然后再处理响应的业务。import java.util.concurrent.BlockingQueue;import jav...翻译 2018-03-02 11:42:15 · 524 阅读 · 0 评论 -
Java--JDK1.8十大特性
“Java is still not dead—and people are starting to figure that out.”本教程将用带注释的简单代码来描述新特性,你将看不到大片吓人的文字。一、接口的默认方法Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下:复制代码代码如下:interface Formula {...翻译 2018-03-05 13:55:12 · 1026 阅读 · 0 评论 -
Java--排序算法总结
排序算法总结 分类 编程技术 排序算法平均时间复杂度冒泡排序O(n2)选择排序O(n2)插入排序O(n2)希尔排序O(n1.5)快速排序O(N*logN)归并排序O(N*logN)堆排序O(N*logN)基数排序O(d(n+r))一. 冒泡排序(BubbleSort)基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。过程:比较相邻的两个数据,如果第二个数小,就交换位置。从后向前两两比...翻译 2018-03-05 13:56:41 · 161 阅读 · 0 评论 -
Java设计模式--单例模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须...翻译 2018-03-05 14:00:27 · 87 阅读 · 0 评论 -
Java设计模式--工厂模式
工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何...翻译 2018-03-05 14:02:54 · 104 阅读 · 0 评论 -
Java设计模式--抽象工厂模式
抽象工厂模式抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。...翻译 2018-03-05 14:03:49 · 103 阅读 · 0 评论 -
Java--使用POI进行Excel多线程写操作的demo
最近项目中要使用POI进行Excel大数据量写入的功能,以下是alex写的一个简单demo。其中,使用了ThreadPoolExecutor、CountDownLatch。由于POI的sheet中使用TreeMap存储行数据集,所以对Sheet的行创建是非线程安全的,所以进行了同步操作。package com.alex.frameworkDemo.poi;import java.io.Fi...翻译 2018-02-09 17:30:36 · 4309 阅读 · 0 评论