java
国家二级残序员
距离成功,只差一张500W的彩票
展开
-
常用正则表达式 如用户名 密码 邮箱 email
只能输入数 字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?转载 2017-01-04 17:14:35 · 2559 阅读 · 0 评论 -
深入解析Java反射基础
博客原文:http://www.sczyh30.com/posts/Java/java-reflection-1/ - 这老哥写的特别好。 本篇为基本篇,基于JDK 1.8。一、回顾:什么是反射?反射(Reflection)是Java 程序开发语言的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性。Oracle官方对反射的解释是Reflecti转载 2017-05-22 09:52:55 · 504 阅读 · 0 评论 -
JAVA IO流示例
以字符流的方式读取文件public class JavaIOTest { /** * 读取txt文件的内容 * @param file 想要读取的文件对象 * @return 返回文件内容 */ public static String txt2String(File file){ StringBuilder result =原创 2017-07-20 13:04:40 · 355 阅读 · 0 评论 -
Apache POI - Java Excel
开发Excel都有可以用那些? 本文介绍一下POI的使用。Java Aspose Cells Java Aspose Cells 是一种纯粹的Java授权的Excel API,开发和供应商Aspose发布。这个API的最新版本是8.1.2,发布于2014年7月,是一个丰富而厚重的API(普通Java类和AWT类的组合)设计,可以读、写和操纵电子表格Excel的组件。此API常见用途如下:Exce原创 2017-08-04 22:08:54 · 369 阅读 · 0 评论 -
String to java.sql.Date
在开发中遇到String 转换 java.sql.Date的问题,耽误了很多时间,一直报IllegalArgumentException错误。上一段报错代码:String strDate = "20170823";java.sql.Date date = java.sql.Date.ValueOf(strDate);分析原因: strDate格式是:“20170823”就是报错,把日期转换成原创 2017-08-23 13:23:54 · 429 阅读 · 0 评论 -
java中instanceof用法
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 用法: result = object instanceof class 参数: Result:布尔类型。 Object:必选项。任意对象表达式。 Class:必选项。任意已定义的对象类。 说明:转载 2017-09-06 16:52:35 · 219 阅读 · 0 评论 -
java断言的使用和契约式设计编程模型简介
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真 可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。 使用断言可以创建更稳定,品质更好且易于除原创 2017-10-09 21:26:20 · 1050 阅读 · 0 评论 -
双栈算数表达式求值算法
/** * 双栈算数表达式求值算法 * 思路: * 1.将操作数压入操作数栈; * 2.将运算符压入运算符栈; * 3.忽略左括号; * 4.在遇到右括号时,弹出一个运算符, * 弹出所需要的操作数, * 并将运算符和操作数的运算结果压入操作数栈。 */public class Evaluate { public static void main(St原创 2017-11-07 10:41:50 · 514 阅读 · 0 评论 -
7 款 JAVA 程序开发“大杀器”
工欲善其事,必先利其器!对于 Java 程序员来说,若想提高工作效率,那么以下这 7 款 Java 程序开发工具绝对是你不能错过的,不仅可以帮助你提高工作效率,改善代码质量,还可以摆脱重复造轮子的窘境,将更多的精力放在更富有创造性的事情上。码云项目推荐1、项目名称:百万级即时通讯框架 t-io项目简介: t-io 是基于 jdk aio 实现的易学易用、稳定耐操、性能强悍、将多线程运用到极致、内置功转载 2017-10-12 23:31:56 · 340 阅读 · 0 评论 -
6款 Java WEB应用开发工具(框架)
码云项目推荐1、项目名称:分布式敏捷开发系统架构 zheng项目简介: 基于 Spring + SpringMVC + Mybatis 分布式敏捷开发系统架构,提供整套公共微服务服务模块:集中权限管理(单点登录)、内容管理、支付中心、用户管理(支持第三方登录)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位 J2EE 企业级开发解决方案。转载 2017-10-12 23:39:41 · 13063 阅读 · 1 评论 -
3-sum问题
3-sum问题:统计一个不重复数组中3个数相加为0的组合。import java.util.Arrays;public class Main { public static void main(String[] args) { int[] in = { 3, 4, 5, 6, 1, -6, 8, 21 }; Arrays.sort(in); /原创 2017-11-08 17:34:16 · 566 阅读 · 0 评论 -
十进制整数转换二进制
Stack数据类型实现 见:http://blog.csdn.net/z3881006/article/details/76473015Stack<Integer> s = new Stack<Integer>();int N = 50;while(N>0){ s.push(N%2); N/=2;}int size = s.size();for(int i = 0;i <原创 2017-11-02 16:07:49 · 524 阅读 · 0 评论 -
前(中后)序表达式讲解
计算机处理括号、优先级之比较繁琐,前序和后序表达式中没有括号,而且在计算中只需单向扫描,不需要考虑运算符的优先级。举个例子说明计算过程: 名称 表达式 中序表达式 2*3/(2-1)+3*(4-1) 前序表达式 +/*23-21*3-41 后序表达式 23*21-/341-*+中序表达式:该表达式是我们常用的,不说了。前序表达式:1.计算:```4-1=1```,原创 2017-11-04 19:33:29 · 3740 阅读 · 1 评论 -
java自定义注解
注解详解@Documented:使用该注解的元素将被javadoc工具提取成文档。@Inherited: 被它修饰的元素将具有继承性.如果某个类使用了被 @Inherited 修饰的 Annotation, 则其子类将自动具有该注释。@Retention,用于指定该元素的声明周期。RetentionPolicy.CLASS: 编译器将把注释记录在 class 文件中. 当运行 Java 程序时原创 2017-12-20 15:46:49 · 202 阅读 · 0 评论 -
java volatile关键字解惑
前言看着上一篇的更新时间,发现已经挺长时间没有提笔了,只能以忙为自己开脱了,如果太闲都不好意思说自己是程序猿了,正好今天有人问了我一个问题:当一个共享变量被volatile修饰时,它会保证修改的值立即被更新到主存“, 这里的”保证“ 是如何做到的?和 JIT的具体编译后的CPU指令相关吧?最一开始碰到volatile,我的内心是拒绝的,因为当时做的项目中没有用到,也不清楚可以在什么场景下使用,转载 2017-12-27 17:09:43 · 245 阅读 · 0 评论 -
使用volatile时,屏蔽了那些jvm优化?
前言Java中volatile这个热门的关键字,在面试中经常会被提及,在各种技术交流群中也经常被讨论,但似乎讨论不出一个完美的结果,带着种种疑惑,准备从JVM、C++、汇编的角度重新梳理一遍。volatile的两大特性:禁止重排序、内存可见性,这两个概念,不太清楚的同学可以看这篇文章 -> java volatile关键字解惑概念是知道了,但还是很迷糊,它们到底是如何实现的?本文会涉及到一些原创 2017-12-27 17:14:59 · 463 阅读 · 0 评论 -
策略模式详解
策略模式详解 作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可。 上章我们着重讲解了观察者模式和事件驱动,那么本章来讨论一个个人认为在开转载 2018-03-02 15:22:48 · 258 阅读 · 0 评论 -
JAVA CAS原理深度分析
看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog.hesey.net/2011/09/resolve-aba-by-atomicstampedreference.转载 2017-05-05 15:21:03 · 327 阅读 · 0 评论 -
并发编程:volatile 关键字解析
原文出处: 海子volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前转载 2017-05-05 14:39:28 · 294 阅读 · 0 评论 -
java笔记--理解java类加载器以及ClassLoader类
类加载器概述: java类的加载是由虚拟机来完成的,虚拟机把描述类的Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成能被java虚拟机直接使用的java类型,这就是虚拟机的类加载机制.JVM中用来完成上述功能的具体实现就是类加载器.类加载器读取.class字节码文件将其转换成java.lang.Class类的一个实例.每个实例用来表示一个java类.通过该实例的newInsta转载 2017-02-24 15:42:37 · 388 阅读 · 0 评论 -
java集合类详解
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些Coll转载 2016-12-29 21:26:38 · 215 阅读 · 0 评论 -
Java类加载器
1)Bootstrap ClassLoader 负责加载$JAVA_HOME中jre/lib/rt.jar里所有的class,由C++实现,不是ClassLoader子类2)Extension ClassLoader 负责加载java平台中扩展功能的一些jar包,包括$JAVA_HOME中jre/lib/*.jar或-Djava.ext.dirs指定目录下的jar包3)App C原创 2017-01-08 14:49:22 · 205 阅读 · 0 评论 -
Java关键字和保留字
1,Java 关键字列表 (依字母排序 共50组):abstract, assert, boolean, break, byte, case, catch, char, class, const(保留关键字), continue, default, do, double, else, enum, extends, final, finally, float, for, goto(保留关键字), if原创 2017-01-08 14:51:35 · 280 阅读 · 0 评论 -
下压(LIFO栈)_API
栈,先进后出(FILO—First-In/Last-Out):能够动态调整数组大小的实现。在算法学习中,LIFO栈几乎达到了任意集合类数据类型的实现的最佳性能: 1. 每项操作的用时都与集合大小无关。 2. 空间需求总是不超过集合大小乘以一个常数。 无泛型的缺点在于某些push()和pop()操作会调整数组的大小:这项操作的耗时和栈大小成正比。import java.util.Iterator原创 2017-01-14 20:02:27 · 383 阅读 · 0 评论 -
Java异常详解
异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。而在我们的程序中需要对这些异常进行捕获和处理来避免程序卡死等情况。Java异常我们先看一张异常的层次结构图:在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题转载 2017-02-07 08:34:02 · 372 阅读 · 0 评论 -
java中transient关键字
transient是Java语言的关键字,变量修饰符,如果用它声明一个实例变量,当对象存储时,它的值不需要维持。在java中一个对象只要实现了Serializable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serializable接口,这个的所有属性和方法都会自动序列化。在实际开发过程中,通常是某个类(Bea原创 2017-01-16 21:43:29 · 324 阅读 · 0 评论 -
java.lang.IllegalThreadStateException异常原因解析
原因是:在程序中一个Thread对象多次调用 .start()方法,就会产生java.lang.IllegalThreadStateException异常。 解决:不要extends Thread ,要 implements Runnable,通过使用匿名对象:如new Thread(new MyThread())).start()。可多次调用。原创 2017-01-17 13:57:52 · 2056 阅读 · 0 评论 -
线程的安全性
文档内容摘自:Java并发编程实战概述 多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类始终都能变现出正常的行为,那么就称这个类是线程安全的。 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问。“共享”意味着变量可以被多个线程同时访问,而“可变”则意味着变量的值在其生命周原创 2017-01-17 17:24:57 · 1016 阅读 · 0 评论 -
深入理解 Java 反射:Class (反射的入口)
深入理解 Java 反射系列:深入理解 Java 反射:Class (反射的入口) 深入理解 Java 反射:Field (成员变量)深入理解 Java 反射:Method (成员方法)读完本文你将了解到:什么是 Reflection 反射为什么要用它Java 中 Reflection 和 Introspection 区别反射的入口javalangClass得到一个 Class 对象转载 2017-01-20 17:42:56 · 406 阅读 · 0 评论 -
Java内存区域
根据《Java 虚拟机规范(JavaSE7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。如下图(来自互联网)运行时数据区域Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域,这些区域都有它们的生命周期(创建和销毁时间)。程序计数器程序计数器PCR(Program Counter Register)是一块非常小的内存空间,我们可以理解为它是当原创 2017-02-08 17:25:43 · 292 阅读 · 0 评论 -
深入分析虚拟机在Java堆中对象分配、布局和访问的全过程
对象的创建—>虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能再常量池(方法区中)中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,必须先执行类的加载过程。—-> —>指针碰撞:如果Java堆中的内存是绝对规整的,所有用过的内存都放在一起,空闲的内存放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间那边挪原创 2017-02-13 15:42:08 · 1205 阅读 · 0 评论 -
常用JVM配置参数
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4736162.html 本文主要内容:Trace跟踪参数堆的分配参数栈的分配参数 零、在IDE的后台打印GC日志:既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是转载 2017-02-13 15:59:41 · 922 阅读 · 0 评论 -
JVM常见问题总结
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4810168.html 【正文】声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04—-GC算法和种类。那篇文章和本文是面试时的重点。转载 2017-02-13 16:16:16 · 492 阅读 · 0 评论 -
JVM内存结构
主要内容如下:JVM启动流程JVM基本结构内存模型编译和解释运行的概念 一、JVM启动流程:JVM启动时,是由java命令/javaw命令来启动的。二、JVM基本结构:JVM基本结构图:《深入理解Java虚拟机(第二版)》中的描述是下面这个样子的: Java中的内存分配:Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特转载 2017-02-13 16:19:42 · 259 阅读 · 0 评论 -
GC算法和种类【重要】
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4744233.html 本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法:转载 2017-02-13 16:21:18 · 3079 阅读 · 0 评论 -
垃圾收集器及GC参数
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4748313.html 本文主要内容:堆的回顾串行收集器并行收集器CMS收集器 零、堆的回顾:新生代中的98%对象都是“朝生夕死”的,所以并不需要按照1:1的比例来划分内存空间,而是转载 2017-02-13 16:22:59 · 310 阅读 · 0 评论 -
JAVA 正则表达式 (超详细)
在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。 可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性。在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛。 正则表达转载 2017-02-22 15:02:27 · 656 阅读 · 0 评论 -
JVM相关面试题目
JVM 1. 详细jvm内存模型 2. 讲讲什么情况下回出现内存溢出,内存泄漏? 3. 说说Java线程栈 4. JVM 年轻代到年老代的晋升过程的判断条件是什么呢? 5. JVM 出现 fullGC 很频繁,怎么去线上排查问题? 6. 类加载为什么要使用双亲委派模式,有没有什么场景是打破了这个模式? 7. 类的实例化顺序 8. JVM垃圾回收机制,何时触发MinorGC等操作 9原创 2018-05-03 14:34:46 · 303 阅读 · 0 评论