Java基础
chendeyou5
这个作者很懒,什么都没留下…
展开
-
什么时候处理与抛出异常
什么时候处理与抛出异常采用伪代码的形式模拟JAVA代码,不能编译通过,重在思想.什么时候处理异常给客户端(第三方)提供服务时,在服务器的最顶层进行异常处理try{ // 这里抛出异常 return { status : 1 , data : "其他数据" };}catch(Exception ex){ return { ...转载 2018-03-05 16:50:34 · 4639 阅读 · 0 评论 -
Java同步机制:synchronized,wait,notify
public class ThreadSyn { public static void main(String[] args) { new ThreadSyn(); } public ThreadSyn() { Queue queue = new Queue(); Produc...转载 2018-03-05 17:40:22 · 193 阅读 · 0 评论 -
Android基本知识
Handler机制Android 的消息机制也就是 handler 机制, 创建 handler 的时候会创建一个 looper ( 通过 looper.prepare() 来创建 ), looper 一般为主线程 looper.handler 通过 send 发送消息 (sendMessage) , 当然 post 一系列方法最终也是通过 send 来实现的, 在 send 方法中handler...转载 2018-03-05 17:42:32 · 147 阅读 · 0 评论 -
Java基本知识点
Java基本知识点类的加载过程以Person person = new Person()为例进行说明因为new用到了Person.class,所以会先找到Person.class文件,并加载到内存中;执行该类中的static代码块,如果有的话,给Person.class类进行初始化;在堆内存中开辟空间分配内存地址;在堆内存中建立对象的特有属性,并进行默认初始化;对属性进行显示初始化;对对象进行构造...转载 2018-03-05 17:44:36 · 211 阅读 · 0 评论 -
Java在linux下调用C/C++生成的so文件
Java在linux下调用C/C++生成的so文件CplusUtil.java是java web工程中的一个工具类CplusUtil.java 内容如下:package cn.undoner.utils;/** * Created by ${<A HREF="mailto:undoner@gmail.com">undoner</A>} on 16-2-25. */...转载 2018-03-05 17:46:40 · 1537 阅读 · 0 评论 -
多模块Maven项目如何使用javadoc插件生成文档
需求最近要对一个项目结构如下的Maven项目生成JavaDoc文档。Project |-- pom.xml |-- Module1 | `-- pom.xml |-- Module2 | `-- pom.xml |-- Module3 |-- pom.xml这个就需要用到本文将要提出的一个Maven插件:ja...转载 2018-03-05 17:52:57 · 943 阅读 · 0 评论 -
Java线程池管理
new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就out太多了,new Threa...转载 2018-03-05 18:15:26 · 338 阅读 · 0 评论 -
spring中service调用service的事务控制
在使用SPRING的事务控制时,事务一般都是加在SERVICE层的,这个时候如果一个SERVICE调用另一个SERVICE时有可能会出现事务控制问题,比如第二个SERVICE抛出了异常,第一个SERVICE却正常提交了,比如下面这个例子:事务配置<tx:method name="add*" propagation="REQUIRED"/> 测试代码@Test public vo...转载 2018-03-05 18:46:55 · 21211 阅读 · 1 评论 -
Java奇淫巧技之Lombok
背景 我们在开发过程中,通常都会定义大量的JavaBean,然后通过IDE去生成其属性的构造器、getter、setter、equals、hashcode、toString方法,当要对某个属性进行改变时,比如命名、类型等,都需要重新去生成上面提到的这些方法,那Java中有没有一种方式能够避免这种重复的劳动呢?答案是有,我们来看一下下面这张图,右面是一个简单的JavaBean,只定义了两个属性,在...转载 2018-03-05 18:50:49 · 222 阅读 · 0 评论 -
java request判断是否是微信客户端访问
微信客户端访问时候user-agent信息如下:Mozilla/5.0 (Linux; Android 5.0.1; M040 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.8 TBS/036872 Safari/537.36 MicroMes...原创 2018-03-28 09:32:42 · 6518 阅读 · 0 评论 -
BASE64转MultipartFile
package com.yg.utils;import org.springframework.web.multipart.MultipartFile;import sun.misc.BASE64Decoder;import java.io.*;/** * base64转MultipartFile */public class BASE64DecodedMultipartFi...转载 2018-08-23 11:15:07 · 6876 阅读 · 8 评论 -
Java ConcurrentLinkedQueue队列线程安全操作
代码示例:package async; import java.util.ArrayList; import java.util.List; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; /** * * 线程安全队列Queue实现计算科学古老的线程同步问...转载 2018-03-05 17:38:30 · 927 阅读 · 0 评论 -
java foreach实现原理
java foreach实现原理在平时Java程序中,应用比较多的就是对Collection集合类的foreach遍历, foreach之所以能工作,是因为这些集合类都实现了Iterable接口, 该接口中定义了Iterator迭代器的产生方法,并且foreach就是通过Iterable接口在序列中进行移动。Iterable接口API:package java.lang;import java...转载 2018-03-05 17:37:16 · 175 阅读 · 0 评论 -
【JavaService】使用Java编写部署windows服务
【JavaService】使用Java编写部署windows服务准备工作如果你玩windows系统,你对服务这个东西并不会陌生,服务可以帮我们做很多事情,在不影响用户正常工作的情况下,可以完成很多我们需要的需求。众所周知,微软的visio studio内置的Service类可以编写windows服务,对于一个Java开发人员来说,想要编写一个windows服务部署到服务器里面,还要在自己的开发环境...转载 2018-03-05 16:53:35 · 3528 阅读 · 0 评论 -
BlockingQueue(阻塞队列)详解
BlockingQueue(阻塞队列)详解前言在新增的Concurrent包中,BlockingQueue很好的解决了多线程中, 如何高效安全“传输”数据的问题。 通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。 本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是...转载 2018-03-05 17:02:43 · 565 阅读 · 0 评论 -
异常处理汇总
异常处理汇总经验库开源地址:https://github.com/dunitian/LoTDotNet原文地址:http://www.cnblogs.com/dunitian/p/4599258.html?spm=5176.100239.blogcont39985.4.GH1dFD后端系列异步编程异步方法不能使用ref和out的解决方法现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,...转载 2018-03-05 17:10:36 · 662 阅读 · 0 评论 -
异常分析初探
异常在Java中是非常重要的一个内容,了解异常有助于我们写出更加健壮的代码,本文将探讨一下几个问题:1 异常是怎么被JVM捕获的? 2 新建异常实例是否耗时?为什么会耗时?是否能够避免? 3 为什么不推荐使用printStackTrace()打印异常信息? 4 spring jdbc运行时异常种类概要 5 什么时候应该抛出数据库运行时异常异常怎么被JVM捕获的在了解这个之前首先介绍下java的异常...转载 2018-03-05 17:12:12 · 285 阅读 · 0 评论 -
捕获线程中的异常
由于线程的本质特性,使得你不能捕获从线程中逃逸的异常。 一旦异常逃出任务的run()方法它就会向外传播到控制台, 除非你采取特殊的步骤捕获这种错误的异常。 在Java SE5之前,你可以使用线程组来捕捉这种异常, 但是有了Java SE5,就可以用Executor来解决这个问题了。下面的任务总是会抛出一个异常,该异常会传播到其run()方法的外部, 并且main()展示了当你运行它时所发生的事情:...转载 2018-03-05 17:13:18 · 313 阅读 · 0 评论 -
JAVA异常处理机制
JAVA异常处理机制摘要除非你能解决(或必须要处理)这个异常,否则不要捕获它, 如果打算记录错误消息,那么别忘了把它再抛出去。 异常既代表一种错误,又可以代表一个消息。为什么需要异常Java中异常提供了一种识别及响应错误情况的一致性机制, 有效地异常处理能使程序更加健壮、易于调试。 异常之所以是一种强大的调试手段,在于其回答了以下三个问题:什么出了错?在哪出的错?为什么出错?在有效使用异常的情况下...转载 2018-03-05 17:14:58 · 538 阅读 · 0 评论 -
JAVA异常体系
什么是异常异常:程序在运行过程中发生由于硬件设备问题、软件设计错误等导致的程序异常事件。 (在Java等面向对象的编程语言中)异常本身是一个对象, 产生异常就是产生了一个异常对象。 ——百度百科异常体系Java把异常当作对象来处理, 并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类, 这些异常类分为两大类,错误Error和异常Exc...转载 2018-03-05 17:16:27 · 228 阅读 · 0 评论 -
java对象比较排序
排序基础在项目开发中,我们经常要对一组数据排序,或者升序或者降序, 在java中排序有多种方式,最土的方法就是自己写排序算法, 比如冒泡排序,快速排序,二叉树排序等,但一般不要自己写, jdk已经为我们提供了很多的 排序算法,我们采用拿来主义就成了。在java中,要给数据排序,有两种实现方式,分别实现两个接口:实现Comparable接口实现Comparator接口在JDK类库中,有一部分类实现了...转载 2018-03-05 17:20:25 · 2414 阅读 · 0 评论 -
Java性能调优随记
事情发生在16年了。当时系统beta版本进行上线前的性能压测时, 发现进程的内存占用率会持续升高,与之而来的时,性能的接口性能的持续下降。 最奇怪的是,停止压测后CPU和内存开销并没有恢复过来。 记得之前发过博文,不知道怎么回事找不到了。 应其他同事的要求,回忆一下当时的定位过程,再做一个简单分享。在讲述整个过程前,请大家自备两个梯子:Java虚拟机的垃圾回收机制jmeter的基本使用知识首先下载...转载 2018-03-05 17:27:04 · 178 阅读 · 0 评论 -
一张图看懂Java虚拟机内存区域模型
Java虚拟机内存区域总结Java虚拟机相当于一个抽象的计算机操作系统, 其管理的内从区域大体上可以分为栈和堆,就像c或c++中对内存的分类一样, 但这样的分类对于Java虚拟机来说太过粗浅, 实际上Java虚拟机管理的内存区域分为程序计数器、虚拟机栈、本地方法栈、堆和方法区, 根据各区域是属于线程私有还是由线程共享,这些区域可以分为两类,下面分别进行说明。线程私有的内存区域程序计数器(Progr...转载 2018-03-05 17:31:09 · 2894 阅读 · 3 评论 -
Java线程同步:生产者-消费者 模型(代码示例)
public class ThreadSyn { public static void main(String[] args) { new ThreadSyn(); } public ThreadSyn() { Queue queue = new Queue(); Produc...转载 2018-03-05 17:35:39 · 266 阅读 · 0 评论 -
微信测试号token验证
package com.yg.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import java...原创 2018-10-18 16:35:38 · 996 阅读 · 0 评论