java
文章平均质量分 64
爱上双眼皮儿的猫
这个作者很懒,什么都没留下…
展开
-
web端上传图片的几种方式
首先是后台要有一个上传图片的工具类:package utils;import java.io.File;import org.apache.commons.lang.StringUtils;import play.Logger;import play.Play;import com.google.gson.Gson;import com.ning.http.client.A原创 2015-08-18 10:45:16 · 10213 阅读 · 0 评论 -
java常用算法之逆波兰表达式(Evaluate Reverse Polish Notation)
public class Test { public static void main(String[] args) throws IOException { String[] tokens = new String[] { "2", "1", "+", "3", "*" }; System.out.println(evalRPN(tokens)); } public sta原创 2016-02-16 15:02:07 · 719 阅读 · 0 评论 -
java判断字符串是否包含中文
public static boolean checkChinese(String sequence) { final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]"; boolean result = false; Pattern pattern = Pattern.com原创 2016-02-16 13:55:50 · 684 阅读 · 1 评论 -
java常用算法之返回目标数字在有序数组中的位置(假设有序数组中不存在重复数字)
/** * @Description 返回目标数字在有序数组中的位置(假设有序数组中不存在重复数字) * @param source * @param target * @return */ public static Integer numIndex(int[] source, int target) { int index = 0; if (source ==原创 2016-04-18 13:52:47 · 484 阅读 · 0 评论 -
java常用算法之螺旋矩阵
给定一个m*n矩阵,返回所有元素在矩阵中的螺旋序列,例如:原创 2016-04-19 14:05:24 · 1470 阅读 · 0 评论 -
IntelliJ IDEA中的maven模块不见了
之前调试的好好的maven项目,今天打开发现右侧的maven project 模块不见了,而且run/debug configurations里的配置也变得不可用。查看半天发现:在 IDEA的File - Settings - Plugins 中Maven Integration选项变成没有勾选了勾选此项,重新打开IDEA,会发现发现右侧的maven project原创 2016-11-29 11:39:29 · 27118 阅读 · 7 评论 -
java通过传入一个指定日期获取该日期所在周的周一至周五的日期
private static void getWeekByDate(Date time) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式 Calendar cal = Calendar.getInstance(); cal.setTime(time); // 判断要计算的日期是否是周日,原创 2016-01-21 14:45:44 · 10699 阅读 · 1 评论 -
《深入理解java虚拟机》之学习笔记(一)——运行时数据区域
java虚拟机在执行java程序的过程中会把它管理的内存划分成多个不同的数据区域。这些数据区域主要分为两大类。一类是随着虚拟机的启动而存在,另一类是随着用户进程的启动和结束而建立和销毁。java虚拟机管理的内存主要包括如下几个运行时数据区域:原创 2016-11-21 15:17:53 · 348 阅读 · 0 评论 -
log4j配置详解(非常详细)
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1. 配置文件Log4J配置文件的基本格式如下: #配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 ,转载 2016-09-14 16:18:15 · 2623 阅读 · 0 评论 -
《深入理解java虚拟机》之学习笔记(三)——java 判断对象是否可回收
java垃圾回收器在回收时首先要判断对象是否还存活,是否可回收。那么,如何判断一个对象是否可回收呢?本文就这一问题做一个简单的整理。很容易想到的一个简单的实现方式是给对象添加一个引用计数器,每当有一个地方引用就加1,引用失效则减1;任何时刻计数器为零的对象就是不会再被使用的,内存自动回收时就可以对它进行回收了。在大部分情况下,这确实是一种实现简单且判断效率高的不错的算法,但是这并不是主流的ja原创 2016-11-25 14:07:16 · 465 阅读 · 0 评论 -
SpringMVC学习笔记(一) DispatcherServlet初始化详解(应用上下文的初始化)
Spring DispatcherServlet初始化详解(应用上下文的初始化)Spring的初始化主线如下: DispatcherServlet的继承体系结构图如下: 这个继承体系结构中HttpServletBean和FrameworkServlet是 对spring的支持。 HttpServletBean 是 Spring 对于 Servlet 最低层次的抽象。在这一层抽象中,Sprin原创 2017-02-06 09:43:16 · 1879 阅读 · 0 评论 -
Spring中ClassPathXmlApplicationContext类的简单使用
一、简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用:ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");RegisterDAO registerDAO = (RegisterDAO)ac.getBean("R转载 2017-02-08 09:23:18 · 43618 阅读 · 2 评论 -
java动态代理之jdk的动态代理
Spring AOP的拦截功能是由java中的动态代理来实现的。java动态代理主要分为两种:一种是jdk的动态代理,一种是CGLIB动态代理。两种动态代理的区别 jdk动态代理是由Java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的。 jdk动态代理是通过java的反射机制生成了一个继承proxy类的代理类,因为java中不允许多继承,所以被代理的只能是接口,jd原创 2017-01-22 09:05:02 · 404 阅读 · 0 评论 -
SpringMVC学习笔记(二) 处理器拦截器详解
Spring Web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。拦截器应用场景:1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。 2、权限检查:如登录检测,进入处理器检测检测是否登录,如果没有直接返回到登录页面; 3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前原创 2017-02-14 10:56:00 · 662 阅读 · 0 评论 -
Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解
引言:接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用;简介:handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型)A、处理requet uri 部分(这里指ur转载 2017-04-19 10:48:27 · 532 阅读 · 0 评论 -
Java 8 之 Streams API 详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进转载 2017-05-02 10:54:28 · 863 阅读 · 0 评论 -
java常用算法之字梯(广度优先搜索bfs)
package utils;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedList;import java.util.Queue;import com.google.gson.Gson;public class WordLadder { // solution function原创 2016-02-16 17:17:23 · 637 阅读 · 0 评论 -
java常用算法之两个有序list的合并
/** * 两个已顺序排序数组的合并 * * @param aList * @param bList * @return */ public static List mergeTwoSortList(List aList, List bList) { int aLength = aList.size(), bLength = bList.size(); L原创 2016-04-18 11:13:28 · 5480 阅读 · 1 评论 -
java 1.7之后的Arraylist容量增长机制
java 1.7之后的Arraylist容量增长机制原创 2016-04-15 17:29:17 · 3200 阅读 · 0 评论 -
java中set集合的使用方法
1.HashSet java.util.HashSet类实现了Java.util.Set接口。它有如下特点: 1.它不允许出现重复元素; 2.不保证集合中元素的顺序 3.允许包含值为null的元素,但最多只能有一个null元素。下面代码是利用hashSet获取不重复的一组groupId:public static List getGroups(List reso原创 2015-08-18 11:46:30 · 39967 阅读 · 1 评论 -
JVM 堆栈区域数据存放流程
在Java程序运行过程中,JVM定义了各种区域用于存储运行时数据。其中的有些数据区域在JVM启动时创建,并只在JVM退出时销毁。其它的数据区域与每个线程相关。这些数据区域,在线程创建时创建,在线程退出时销毁。JVM 由3部分组成:栈区---------------------------------基础数据类型 byte short int long float d转载 2015-11-18 14:16:54 · 442 阅读 · 0 评论 -
Comparator实现List排序
TreeSet set = new TreeSet( new Comparator() { @Override public int compare(StudentReadInfo o1, StudentReadInfo o2) { return new Date(o2.time).compareTo(new Date(o1.time)); }原创 2015-11-18 11:36:00 · 359 阅读 · 0 评论 -
Java调用Oracle存储过程
步骤:1、编写Oracle存储过程2、编写数据库获取连接工具类3、编写简单应用调用存储过程实现:1、Oracle存储过程:/*测试表*/create table test( id varchar2(32), name varchar2(32));/*存储过程 插入数据*/ CREATE OR REPLACE PROCEDU转载 2015-11-18 16:41:04 · 290 阅读 · 0 评论 -
聊聊 Java 中日期的几种常见操作 —— 取值、转换、加减、比较
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我只提供了可行的解决方案,并不保证是最佳实践,欢迎讨论。1. 日期取值在旧版本 JDK 的时代,有不少代码中日期取值利用了 java.util.Date 类,但是由于 Date转载 2016-01-18 15:27:04 · 1022 阅读 · 0 评论 -
java html 上传图片代码
页面代码: 选择图片 请选择正方形图片,否则会出现变形,支持格式:.gif.jpg.png.jpeg 上传 java controller@RequestMapping("/uploadA原创 2015-12-31 09:17:23 · 4820 阅读 · 0 评论 -
两个超级长的整数相加减
public static void main(String[] args) { String b = "21342687631748172482311832418324"; String a = "4389265786296528365286523856385"; List aList = getIntList(a); List bList = getIntList(b);原创 2016-01-19 10:19:12 · 575 阅读 · 0 评论 -
65条最常用正则表达式
最全面的常用正则表达式大全 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$转载 2016-01-07 18:29:44 · 861 阅读 · 0 评论 -
java练习题
/* * 题目一:通过键盘输入一串小写字母(a~z)组成的字符串。 请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函数:void stringFilter(const char *pInputStr, long lInputLen, char *pO原创 2016-01-27 15:34:21 · 869 阅读 · 0 评论 -
输入一个表达式,没有括号,数字小于0-9之间,输出计算结果,所有的中间结果化为整形。 例如: 输入:3+8×2/9-2 输出:2
public class PracticeUtil {public staticvoid main(String[] args) {String s = "3+8×2/9-2 ";int result = getMyRet(s);System.out.println("最后结果:" +result);}public staticint g原创 2016-01-27 17:30:42 · 2946 阅读 · 0 评论 -
实现手机号码合法性判断的函数
我国大陆运营商的手机号码标准格式为:国家码+手机号码,例如:8613912345678。特点如下: 1、 长度13位;2、 以86的国家码打头;3、 手机号码的每一位都是数字。 请实现手机号码合法性判断的函数(注:考生无需关注手机号码的真实性,也就是说诸如86123123456789这样的手机号码,我们也认为是合法的),要求:1) 如果手机号码合法,返回0;2)原创 2016-02-01 15:30:19 · 2638 阅读 · 0 评论 -
利用Gson使json字符串与java bean/list/map之间的相互转换
public class GsonPracticeUtil { public static void main(String[] args) { Gson gson = new Gson(); Member m1 = new Member(); m1.setDisPlayName("m1"); m1.setEmail("1@qq.com"); m1.setSex(Sex.Ma原创 2016-01-14 15:30:24 · 5237 阅读 · 0 评论 -
java常用算法之最长回文子串(Longest Palindromic Substring)
方法一:时间复杂度为O(n^3)public static String longestPalindrome1(String s) { int maxPalinLength = 0; String longestPalindrome = null; int length = s.length(); // check all possible sub strings for (原创 2016-02-16 15:31:13 · 355 阅读 · 0 评论 -
Java Map 按Key排序和按Value排序
Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sort by key), 按值排序(sort by value)。 1、按键排序jdk内置的java.util包下的TreeMap既可满足此类需求,向其构造方法 TreeMap(Comparator comparator) 传入我们自定义的比较器即可实现按键排序。 实现代码转载 2016-04-06 11:29:47 · 326 阅读 · 0 评论 -
使用jackson 进行json字符串转java bean报错
jackson 进行json字符串转java bean原创 2016-04-26 20:13:30 · 1136 阅读 · 0 评论 -
java的算术右移(>>)、算术左移(<<)及逻辑右移(>>>,无符号移位)
首先说明一点,本文所有的操作都是针对存储在计算机中中二进制的操作,正数在计算机中是用二进制表示的,负数在计算机中使用补码表示的。算术左移(算术右移(>>):有符号的移位操作;该操作时将运算数的二进制码整体右移指定位数(>>符号左侧为运算数,右侧为移动位数),右移之后左侧的空位正数用0补充(可省略),负数用1补充。逻辑右移(>>>,无符号移位):无符号的移位操作;该操作时将运算数原创 2017-04-21 17:17:17 · 5047 阅读 · 1 评论