![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
xiaoyangxavier
士不可以不弘毅,任重而道远!
展开
-
entity、bo、vo、po、dto、pojo的区别
Entity最常用实体类,基本和数据表一一对应,一个实体一张表。Bo(business object)代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是逻辑,业务逻辑),这个对象可以包括一个或多个其它的对象。通过调用Dao方法,结合Po或Vo进行业务操作。形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。比如处理一个人的业务逻辑,该人会睡觉,吃饭,工...转载 2019-11-05 19:23:16 · 414 阅读 · 0 评论 -
Google Java编程风格指南
目录前言源文件基础源文件结构格式命名约定编程实践Javadoc后记前言这份文档是Google Java编程风格规范的完整定义。当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格。与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准。然而,这份文档主要侧重于我们所普遍遵循的规则, 对于转载 2017-08-23 15:13:23 · 194 阅读 · 0 评论 -
Java生成名片式的二维码源码分享
零、效果图左上角为微信头像。沉默王二是文字昵称。附带URL为http://blog.csdn.net/qing_gee的二维码还有指定的背景图。使用场景:点公众号的微信菜单“我的二维码”,然后展示一张名片式的二维码给用户。一、源码下载可以通过GitHub直接下载https://github.com/qinggee/qrcode-utils.二转载 2017-08-25 11:16:23 · 793 阅读 · 0 评论 -
Stack vs. Heap: Understanding Java Memory Allocation
Stack and heap are two important concepts you should understand in relation to Java memory allocation. Let’s take a look at the two concepts, why they matter, and when you should use each.What Is翻译 2017-08-18 11:06:34 · 302 阅读 · 0 评论 -
Java常见异常
算术异常类:ArithmeticExecption空指针异常类:NullPointerException类型强制转换异常:ClassCastException数组负下标异常:NegativeArrayException数组下标越界异常:ArrayIndexOutOfBoundsException违背安全原则异常:SecturityException文转载 2017-07-26 14:29:50 · 309 阅读 · 0 评论 -
Quartz使用总结
Quartz可以用来做什么?Quartz是一个任务调度框架。比如你遇到这样的问题想每月25号,信用卡自动还款想每年4月1日自己给当年暗恋女神发一封匿名贺卡想每隔1小时,备份一下自己的爱情动作片 学习笔记到云盘这些问题总结起来就是:在某一个有规律的时间点干某件事。并且时间的触发的条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这个事。 Qu转载 2017-08-09 10:22:46 · 225 阅读 · 0 评论 -
JVM介绍
1. 什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码转载 2017-07-04 12:43:19 · 303 阅读 · 0 评论 -
在Java中调用存储过程
本文阐述了怎么使用DBMS存储过程。我阐述了使用存储过程的基本的和高级特性,比如返回ResultSet。本文假设你对DBMS和JDBC已经非常熟悉,也假设你能够毫无障碍地阅读其它语言写成的代码(即不是Java的语言),但是,并不要求你有任何存储过程的编程经历。 存储过程是指保存在数据库并在数据库端执行的程序。你可以使用特殊的语法在Java类中调用存储过程。在调用时,存储过程的名称及指定的参数通转载 2017-06-23 15:15:13 · 1094 阅读 · 0 评论 -
Web Service工作原理及实例
一、Web Service基本概念Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。XML:(Extensible Markup Language)扩展型转载 2017-06-22 17:45:10 · 481 阅读 · 0 评论 -
JdbcTemplate query查询方法
JdbcTemplate 中有很多的查询方法,整理几个比较常用的方法。1、queryFor*方法很好用,简单强大。2、query查询方法中带有回调接口有三个:ResultSetExtractor、RowCallbackHandler、RowMapper 使用ResultSetExtractor时,一般是直接new ResultSetExtractor(),然后在extractData(R转载 2017-06-29 17:54:39 · 43298 阅读 · 1 评论 -
AtomicInteger类的理解与使用
首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; }}123456789以下是At转载 2017-06-28 16:39:32 · 227 阅读 · 0 评论 -
大数据量下高并发同步
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步 1、同步和异步的区别和联系 所谓同步,可以理解为在转载 2017-06-28 16:34:22 · 312 阅读 · 0 评论 -
多线程详解
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都转载 2017-05-18 16:53:24 · 259 阅读 · 0 评论 -
线程安全的方法
面试问题:下面的方法是否线程安全?怎样让它成为线程安全的方法?class MyCounter { private static int counter = 0; public static int getCount() { return counter++; }}本篇文章将解释一个常见的面试题,该问题被谷歌和很多其它公司问起过。它涉及的转载 2017-05-18 14:40:23 · 325 阅读 · 0 评论 -
java i++ 并非原子操作的解决方法——用AtomicInteger
以下代码只在运行结束后打印结果[java] view plain copypublic class Test1 { private static int a = 0; public static void main(String[] args) throws InterruptedException{转载 2017-11-07 15:58:10 · 1134 阅读 · 0 评论 -
Java线程池及Future、Callable获得线程返回结果
Java线程池及Future、Callable获得线程返回结果【Java线程池系列2】Java多线程编程中,经常使用的Thread的Runnable()虽然被经常使用,但其有一个弊端,就是因为无法直接获取该线程的返回值,因为Runnable内的run方法,被定义为void类型,如果开发者需要在线程中处理耗时操作并获得结果,那么必须自己实现一套结果获取的途径,这其实增加了开发者的代码工作量,也可转载 2017-08-31 15:55:06 · 5472 阅读 · 0 评论 -
Executor多线程框架
Java使用线程完成异步任务是很普遍的事,而线程的创建与销毁需要一定的开销,如果每个任务都需要创建一个线程将会消耗大量的计算资源,JDK 5之后把工作单元和执行机制区分开了,工作单元包括Runnable和Callable,而执行机制则由Executor框架提供。Executor框架为线程的启动、执行和关闭提供了便利,底层使用线程池实现。使用Executor框架管理线程的好处在于简化管理、提高效率,转载 2017-11-02 16:47:14 · 303 阅读 · 0 评论 -
设计模式-装饰者模式(Decorator Pattern)
此设计模式遵循的设计原则之一:类应该支持扩展,而拒绝修改(Open-Closed Principle)装饰者模式简述装饰者模式通过组合的方式扩展对象的特性,这种方式允许我们在任何时候对对象的功能进行扩展甚至是运行时扩展,而若我们用继承来完成对类的扩展则只能在编译阶段实现,所以在某些时候装饰者模式比继承(inheritance)要更加灵活。装饰者模式具有的一些特征1,装饰...转载 2019-04-12 18:43:45 · 360 阅读 · 0 评论 -
Junit测试多线程
遇到问题曾今在开发的过程遇到一个问题,当时有一个服务是群发邮件的,由于一次发送几十个上百个,所以就使用了多线程来操作。在单元测试的时候,我调了这个方法测试下邮件发送,结果总是出现莫名其妙的问题,每次都没有全部发送成功。后来我感觉到启动的子线程都被杀掉了,好像测试方法一走完就over了,试着在测试方法末尾让线程睡眠个几秒,结果就能正常发送邮件。分析解决感觉这个Junit有点猫腻,...转载 2018-08-22 15:26:33 · 3348 阅读 · 1 评论 -
java查询数据导出excel并返回给浏览器下载
maven地址为<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version></dependency>其中oo原创 2018-05-08 14:30:00 · 6184 阅读 · 1 评论 -
java:comp/env 解释
关于获取数据源的语法,大体有(javax.sql.DataSource) ctx.lookup ("java:comp/env/XXX")和(javax.sql.DataSource) ctx.lookup("XXX")两种写法,好多人以为这两种写法是相同的,以为都是通过JNDI来获取数据源。其实java:comp/env和 JNDI是不同的,java:comp/env 是环境命名上下文(envi...转载 2018-05-11 10:48:38 · 3232 阅读 · 0 评论 -
Spring MVC 定时任务注解说明
实例:Task类:Java对应代码: 1234567891011121314151617181920package com.axb.cheney.task; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.scheduling.annotation.Scheduled; ...转载 2018-05-02 15:52:36 · 726 阅读 · 0 评论 -
Java集合(实现类线程安全性)
1、集合和Map 下图是Java集合的Collection集合体系的继承树: 下图是Java的Map体系的继承树: 对于Set、List、Queue和Map四种集合,最常用的是HashSet、TreeSet、ArrayList、ArrayQueue、LinkedList和HashMap、TreeMap等实现类。 其中Vector、HashTable、Properties是线...转载 2018-04-11 23:48:44 · 1935 阅读 · 0 评论 -
Callable异步原理简析
Callable异步执行,应该不会陌生,那么在java中是怎么用的呢?又是如何实现的?下面我们循序渐进,慢慢分析。 先看一个例子,实现Callable接口,进行异步计算:package com.demo;import java.util.concurrent.*;public class Demo { public static void main(String[] args) th...转载 2018-04-11 23:43:48 · 542 阅读 · 0 评论 -
Spring Mvc过滤器Filter实现登陆验证
过滤器实现用户登陆判断,如果用户登陆成功跳转到首页,如果用户未登陆,跳转到登陆页面。 1.用户登陆 首先我们天添加两个页面,一个是登陆页面login.jsp,一个是登陆成功后的index.jsp.在login.jsp中我们添加两个用户名和密码文本输入文本框 index.jsp [html] view plain copy<%@ page language="java" contentTy...转载 2018-04-16 23:48:45 · 2294 阅读 · 0 评论 -
openfire+spark+smack实现即时通讯
最近看到一个基于openfire的即时通讯技术openfire+spark+smack实现即时通讯http://www.eoeandroid.com/thread-282925-1-1.html最近公司项目需要用到即时通讯功能,经过调研发现openfire+spark+smack可以实现。在网上找了很久,资料都十分有限,即使有些朋友实现了也说的不清不楚。于是决定自己转载 2018-04-08 21:05:14 · 372 阅读 · 0 评论 -
Spring线程池ThreadPoolTaskExecutor配置及详情
1. ThreadPoolTaskExecutor配置 1 spring thread pool executor --> 2 bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 3 线程池维转载 2017-11-16 16:55:21 · 451 阅读 · 0 评论 -
Java并发包中Lock的实现原理
1. Lock 的简介及使用 Lock是java 1.5中引入的线程同步工具,它主要用于多线程下共享资源的控制。本质上Lock仅仅是一个接口(位于源码包中的java\util\concurrent\locks中),它包含以下方法//尝试获取锁,获取成功则返回,否则阻塞当前线程void lock(); //尝试获取锁,线程在成功获取锁之前被中断,则放弃获取锁,抛转载 2017-11-05 22:23:17 · 272 阅读 · 0 评论 -
synchronized详细介绍
我们知道Java API提供了丰富的多线程机制,但是要想多线程机制能够正常运转,需要采取一些措施来防止多个线程访问相同的资源。为防止出现这样的冲突,只需在线程使用一个资源时为其加锁即可。访问资源的第一个线程加上锁以后,其他线程便不能再使用那个资源,除非被解锁。而在Java中,对这种特殊的资源—— 对象中的内存—— Java 提供了内建的机制来防止它们的冲突。用Java中的Synchroni转载 2017-05-17 16:54:55 · 518 阅读 · 0 评论 -
GroboUtils进行多线程测试
扩展Junit为多线程。Junit源代码会执行System.exit退出,主线程终止jvm都停了,其他线程肯定执行不了的。使用GroboUtils可以去下载它的jar包,官网链接点击打开链接。或者使用maven依赖: [html] view plain copy dependency> groupId>net.sour原创 2017-05-16 17:32:59 · 388 阅读 · 0 评论 -
Handler解析(源码+Demo)
Handler的使用方法如下所示:Handler myHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { ... }转载 2017-05-16 11:29:14 · 346 阅读 · 0 评论 -
myBatis + SpringMVC上传、下载文件
环境:maven+SpringMVC + Spring + MyBatis + MySql本文主要说明如何使用input上传文件到服务器指定目录,或保存到数据库中;如何从数据库下载文件,和显示图像文件并实现缩放。将文件存储在数据库中,一般是存文件的byte数组,对应的数据库数据类型为blob。首先要创建数据库,此处使用MySql数据库。 注意:文中给出的代码多为节选重要片段转载 2017-02-05 10:33:30 · 376 阅读 · 0 评论 -
Mybatis 数据处理
Mybatis 数据处理1.mybatis 动态SQL动态SQL包含以下关键字if 判断choose (when, otherwise) 判断trim (where, set) 去空格foreach 循环If动态 SQL 通常要做的事情是有条件地包含 where 子句的一部分。select id="findActiveBlogLike" resultType转载 2017-02-05 10:25:02 · 554 阅读 · 0 评论 -
SpringMVC详细示例
一、SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包。 2.添加Web.xml配置文件中关于SpringMVC的配置123456789101112131415转载 2017-01-01 00:10:22 · 349 阅读 · 0 评论 -
过滤器
目标:过滤器:1. 过滤器a) 基于概念b) 写一个HelloWorldc) 总结Api及执行流程2. 过滤器案例3. 综合案例 1. 过滤器基本概念(3W1H: why, what, where,how) 为什么需用到过滤器?项目开发中,经常会涉及到重复代转载 2017-01-08 22:30:46 · 590 阅读 · 0 评论 -
监听器
1. 监听器1.1 概述监听器:主要是用来监听特定对象的创建或销毁、属性的变化的! 是一个实现特定接口的普通java类! 对象: 自己创建自己用 (不用监听) 别人创建自己用 (需要监听) Servlet中哪些对象需要监听? request / session /转载 2017-01-08 22:32:13 · 613 阅读 · 0 评论 -
Spring方法拦截器MethodInterceptor和AOP统一处理log
对每个接口的请求记录log的方法有很多种,比如用filter、mvc interceptor、method interceptor等。如果需要记录请求消息的payload,前两种不适用。下面介绍第三种的实现方法。第一步:引入包依赖[java] view plain copy"font-family: Arial, Helvetica,转载 2016-12-29 20:59:53 · 2133 阅读 · 0 评论 -
多线程
如果要想进行多线程的开发,则和程序的主类一样,线程也需要一个线程的主体类。但是所有的线程主体类有两种定义的形式:一种是继承Thread类,另外一种是实现Runnable接口。很明显按照面向对象的概念来讲解使用Runnable接口会更加的合适,因为避免了单继承局限。继承Thread类Thread类是线程操作之中最为重要的一个类,如果要定义线程主体类,直接继承此类,同时覆写此类之中原创 2016-03-14 19:55:05 · 269 阅读 · 0 评论 -
JAVA知识点
访问控制权限对于访问控制权限而言,一共包含四种:private、default、protected(保护)、public。No.范围privatedefaultprotectedpublic1同一包的同一类√√√√原创 2016-03-14 19:21:46 · 228 阅读 · 0 评论 -
设计模式
单例设计模式如果说现在要想控制一个类只能产生一个实例化对象,那么首先控制的是构造方法。所以这样的设计在开发上讲称为单例设计模式(Singleton)。 特点:构造方法被私有化,外部无法产生新的实例化对象,只能通过类内部提供的static方法取得一个固定的对象。package cn.mldn.test;class Singleton { privat原创 2016-03-14 19:28:05 · 217 阅读 · 0 评论