Java
文章平均质量分 71
hellorichen
入道不长,专业不精,还有很长的路要走
展开
-
程序中防连击与锁值操作
1. 防连击工具:redis内存数据库第一次点击按钮后将值存入redis中,并设置该值得失效时间为3s;第二次点击时,取到该值,若该值存在,则提示点击过快;3s后点击可以,程序如下:cache.set(LOGIN_EXPIRE_PREFIX + record.getStr("guid"), 1);cache.expire(LOGIN_EXPIRE_PREFIX + record.g...原创 2018-07-19 18:23:39 · 462 阅读 · 0 评论 -
java中try catch语句执行顺序简介
package com.string_lc;/*** @filename Test.java* @author l* @description */public class Test { public static void main(String[] args) { String s = "asd123"; Integer userid = -1;...原创 2018-05-31 14:53:12 · 1513 阅读 · 1 评论 -
java中字符串字面量池
public class Test { public static void main(String[] args) { String a = "abc"; String b = "abc"; String c = new String("abc"); String d = "ab" + "c"; ...原创 2018-04-20 09:49:14 · 479 阅读 · 0 评论 -
java中异常
类间继承图1.分为异常与错误,而异常又分为检查型异常和非检查型异常。其中:RuntimeException均为非检查型异常,程序可正常编译。而非检查型异常无法通过编译。2.异常关键字包括:try、catch、finally、throw、throws①finally常用于回收在try中打开的物理资源(数据库、网络等)finally中语句总是被执行,当finally中语句执行完后,再去执行try、ca...原创 2018-04-19 16:29:59 · 164 阅读 · 0 评论 -
Java中抽象类与接口
一、抽象类1.abstract修饰类与方法。2.抽象,模糊的不具体的。3.不能用new创建对象,因为调用其方法没有意义。原创 2018-04-23 16:37:34 · 211 阅读 · 0 评论 -
java中字符串字符UNICODE码判定
有时字符串处理字符时,无法确定空格字符是什么字符或其他字符,此时,可查看该字符的UNICODE码。方法如下:public static String stringToUnicode(String s) { String str = ""; for (int i = 0; i < s.length(); i++) { int ch = (...原创 2018-03-24 17:25:38 · 6784 阅读 · 2 评论 -
java中的堆栈
1.栈(stack)先进后出,通常用于保存方法函数中的变量,局部变量。8种基本类型及引用类型均存在于此,其生命周期一般在当前scope内(就是由{}包围的区域)。2.堆(heap)又称“动态内存”,可动态分配,用于存储new出的对象。3.java中六个存储数据的地方①寄存器(register),最快的。②堆栈(stack),如上所示,位于RAM中。③堆(heap),也位原创 2018-03-16 17:34:29 · 376 阅读 · 1 评论 -
Java中判断字符串是否为数字的几种方法
1.正则表达式/*方法一:推荐,速度最快 * 判断是否为整数 * @param str 传入的字符串 * @return 是整数返回true,否则返回false */ public static boolean isInteger(String str) { Pattern pattern = Pattern.compile("^[-\\+]?[\\翻译 2018-02-06 18:15:04 · 484 阅读 · 0 评论 -
java中解析接口传入的json串
1.接口处传入格式[{"content":"123","url":"123"},{"content":"123","url":"123"}]2.代码List parseJsonVote (String options){ List list = new ArrayList(); JSONArray arry = JSONArray.fromObject(options); for (i原创 2018-01-12 17:26:43 · 1754 阅读 · 1 评论 -
jfinal中sql语句中的in关键字
1.错误写法List list = Db.find("SELECT id FROM b_product_detail_phone WHERE productid = 123 AND id NOT IN (?)", "147,148");查询结果包括148,即参数并未全部识别147,148,仅识别了147,无法分辨是几个参数。正确写法:1.全部字符串拼接List list = Db.原创 2018-02-02 09:55:42 · 4284 阅读 · 0 评论 -
java中文件复制
public void fileChannelCopy(File s, File t) { FileInputStream fi = null; FileOutputStream fo = null; FileChannel in = null; FileChannel out = null; try { fi = new FileInputStream(s)转载 2018-01-08 17:42:35 · 137 阅读 · 2 评论 -
Java中String、StringBuilder和StringBuffer的区别
三个类的区别主要在运行速度和线程安全两方面。1.运行速度或执行速度StringBuilder>StringBuffer>String原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的(更改过程陷入了一次次对象的创建、销毁中),但后两者的对象是变量,是可以更改的。2.线程安全Str转载 2018-01-24 12:49:12 · 161 阅读 · 4 评论 -
Jfinal根据url下载文件
String path = (PathKit.getWebRootPath()+"/exclemodel/").replace("\\", "/"); URL httpurl = new URL("***"); String fileName = "*.xlsx"; File f = new File(path原创 2018-01-06 09:19:14 · 1628 阅读 · 1 评论 -
qiniu加密文件下载
1.qiniu加密文件下载 String fileName = "七牛/云存储/qiniu.jpg"; String domainOfBucket = "http://devtools.qiniu.com"; String encodedFileName = URLEncoder.encode(fileName, "utf-8"); String publicUr原创 2017-12-05 19:10:09 · 444 阅读 · 0 评论 -
java对象序列化
1.java中程序执行完毕后销毁对象是合理且必须的,这些对象的声明周期不会比JVM得声明周期更长。但有时我们希望即使JVM不启动,该对象仍可使用,此处便用到了序列化。使用java序列化,将对象保存为一组字节,使用时,再将这些字节组装成对象。其中,对象序列化保存的是对象的“状态”,即它的成员变量。2.简单demopublic enum Gender { MALE, FEMALE原创 2017-11-02 19:09:34 · 585 阅读 · 1 评论 -
jfinal生成指定表的model
jfinal可自动生成所有表的model,但有时项目中并不需要库中的所有表,也许仅需要几个表,生成指定model操作如下;1.更新_Generator.java文件gen.setMetaBuilder(new _MetaBuilder(getDataSource()));2.创建_MetaBuilder.javapublic class _MetaBuilder extends...原创 2018-07-19 18:30:06 · 1984 阅读 · 1 评论 -
Collection与List
Collection与List[java] view plain copy print?---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会...原创 2018-07-20 14:30:47 · 492 阅读 · 0 评论 -
eclipse下spring boot 整合 mybatis、mysql
eclipse下spring boot 整合 mybatis、mysql参考:https://blog.csdn.net/wangjiankai1993/article/details/80272886项目下载地址:https://download.csdn.net/download/hellorichen/11271593转载 2019-07-03 15:31:03 · 334 阅读 · 0 评论 -
十大经典排序算法动画与解析
参考:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/87910210转载 2019-02-27 08:31:30 · 426 阅读 · 0 评论 -
Java容器
1. 用途当数组个数不确定时,使用容器2. 类别按用途分为collection与map,collection保存单一类,map保存键值对。其中均可用泛型。遍历使用iterator,不知对象类型。3. 初始化与向上转型List<Iterator> list = new ArrayList<>();在实际编码中,经常使用向上转型(upcastin...原创 2019-02-26 11:16:21 · 217 阅读 · 1 评论 -
java中static与final
package com.aaa;import java.util.ArrayList;import java.util.List;/** * @filename Test0128.java * @author l * @version 创建时间:2019年1月28日 下午4:47:58 * @description */class Apple { private stat...原创 2019-02-22 14:17:16 · 154 阅读 · 0 评论 -
java中非静态内部类中不可声明静态成员
package com.aaa;/** * @filename Test0128.java * @author l * @version 创建时间:2019年1月28日 下午4:47:58 * @description */public class Test0128 { class Apple { private static long a; private fina...原创 2019-02-22 10:50:31 · 2940 阅读 · 0 评论 -
Solr与Elasticsearch谁是开源搜索引擎王者
https://www.cnblogs.com/chowmin/articles/4629220.htmlhttps://www.cnblogs.com/xiaoqi/p/6545314.html转载 2018-11-02 08:50:09 · 380 阅读 · 4 评论 -
jfinal中日志输入请求参数链接
LogKit.info("Request:" + inv.getActionKey() + "?" + UrlUtil.formatMap(inv.getController()));public static String formatMap(Controller c) { StringBuilder sb = new StringBuilder(""); boolean isF...原创 2018-09-29 10:59:10 · 388 阅读 · 7 评论 -
jfinal中事务回滚
1. 事务回滚①@Before(Tx.class)写在controller中会回滚,而写在service中不回滚,详见商城excel导入分类②atomreturn false 或者有异常抛出都会回滚事务,return true 才会提交事务,Db.tx 方法是有返回值true/false,可对改返回值作业务返回,如果想让 run 方法中往外层传递变量,可以在外层定义一个 fin...原创 2018-09-07 18:16:51 · 1208 阅读 · 0 评论 -
eclispe创建新项目并部署到svn
1. 错误: 找不到或无法加载主类 com.highmall.core.config.HighMallConfigHighMallConfig.class文件丢失造成解决方法:clean项目2. eclispe创建新项目并部署到svn①修改项目包名及项目中的.project文件中项目名②删除项目中的D:\eclipse_com\workspace\HighMallSupplie...原创 2018-09-07 18:12:46 · 289 阅读 · 2 评论 -
Comparison method violates its general contract
Collections.sort(list, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { // return o1 > o2 ? 1 : -1; return o1.compareTo(o2);// 正确的方式 }});经过搜索得知,在...原创 2018-09-05 14:44:31 · 276 阅读 · 0 评论 -
java中分页思路
分页:无法sql查询int offset = 0; boolean enoughOver = true; for (int i = 0; i < pagesize; i++) { Record company = Db.findFirst("", offset++); while (!haveSaleActivity(company.getStr("compa...原创 2018-09-05 14:23:51 · 742 阅读 · 1 评论 -
jfinal中获取headers中参数
1. Integer vercode = getRequest().getIntHeader("MVer");String dtype = getRequest().getHeader("DTYPE");//A 与 I2. String vercode = getHeader("MVer");原创 2018-09-04 18:39:14 · 2356 阅读 · 0 评论 -
【Quartz】定时任务中Job、JobDetail、JobDataMap、Trigger概述
1. Job中实现主要的业务逻辑;JobDetail中存储参数等job的配置信息,如JobDataMap;Scheduler主体实现类;Trigger触发Job的执行。JobDetail jobDetail = JobBuilder.newJob(TimedTaskGroupbuy.class).withIdentity("job"+id.toString(), groupname).bui...原创 2018-08-28 15:38:56 · 1883 阅读 · 0 评论 -
bug
一个服务器上创建新文件的问题一直报错,本地可以生成,服务器上一直无法创建。打log后发现,原来服务器上文件路径错误或缺少文件夹。原创 2018-07-20 15:00:44 · 206 阅读 · 1 评论 -
java中static关键字
一、可修饰成员变量和方法静态函数要注意的事项:1.静态函数可调用类名或对象调用,而非静态函数只能使用对象调用。2.静态函数可直接访问静态成员,但不能访问非静态成员。原因:静态函数可通过类名直接调用,这时可能还未存在非静态成员,因为其是根据对象生成的。二、执行顺序静态代码块的执行顺序优先于非静态代码块,其在.class文件加载到内存时就执行三、代码如下package原创 2017-11-02 09:46:13 · 220 阅读 · 0 评论 -
java后台模拟post接口上传
简介:Java后台模拟post请求,发送参数以及上传文件等方式,适用有些公众API接口的调用.需要知道服务器接口地址及本地文件地址,如:String filepath = "F:\\2.png"; String urlStr = "http://localhost:8080/wxchar_menu/upload"; 参考1:http://blog.csdn.net/u0142011原创 2017-10-30 19:06:59 · 2977 阅读 · 0 评论 -
Java中JNI接口
1. JNI概述我们作为java程序员,但我们不得不承认java语言也有一些它本身的缺点。比如在性能、和底层打交道方面都有它的缺点。所以java就提供了一些本地接口,他主要的作用就是提供一个标准的方式让java程序通过虚拟机与原生代码进行交互,这也就是我们平常常说的java本地接口(JNI——java native Interface)。它使得在 Java 虚拟机(JVM) 内部运行的Java转载 2016-11-16 09:29:18 · 483 阅读 · 0 评论 -
Java创建线程的三种方式及其对比
Java中创建线程主要有三种方式:一、继承Thread类创建线程类二、通过Runnable接口创建线程类三、通过Callable和FutureTask创建线程参考:http://blog.csdn.net/longshengguoji/article/details/41126119转载 2016-11-11 13:18:41 · 5232 阅读 · 1 评论 -
Java中DecimalFormat类
1.继承关系java.text.Format->java.text.NumberFormat->java.text.DecimalFormatDecimalFormat是NumberFormat的一个具体子类,用于格式化十进制数字。例:DecimalFormat df = new DecimalFormat("RMB ###,###,###.##");System.out.pri原创 2016-11-11 12:47:08 · 443 阅读 · 0 评论 -
Java常见笔试及面试考点总结
1、Java的三大特性及简介封装(信息隐藏):属性来描述同一类事物的特征,方法描述操作,将之归到一个类中,称为封装。好处:①实现了专业的分工。②信息隐藏。继承:实现了代码的复用。其中的子类与父类是一般化和特殊化的关系。多态:子类以父类的身份出现需要向上转型(upcast),其中向上转型是由JVM自动实现的。但向下转型(downcast)是不安全的,需要强制转换。向上转型实例(指向子类对象,但会遗失...原创 2016-10-22 21:36:27 · 5655 阅读 · 1 评论 -
Java重载函数,当参数为null时,调用的处理
精确性原则关于以下程序的输出结果:public class TestNull { public void show(String a){ System.out.println("String"); } public void show(Object o){ System.out.println("Object"); } public static void ma原创 2016-11-10 10:05:23 · 2974 阅读 · 0 评论 -
Java中类及方法的加载顺序
1. 虚拟机在首次加载Java类时,会对静态代码块、静态成员变量、静态方法进行一次初始化(静态间按顺序执行)。2. 只有在调用new方法时才会创建类的实例。3. 类实例创建过程:父子继承关系,先父类再子类。父类的静态->子类的静态->父类的初始化块->父类的构造方法->子类的初始化块->子类的构造方法4. 类实例销毁时候:首先销毁子类部分,再销毁父类部分。例:package e原创 2016-11-02 15:32:47 · 13568 阅读 · 11 评论 -
Java中ClassLoader原理简介
一、什么是ClassLoader?一个完整的Java应用程序由若干个.class文件组织而成。当程序在运行时,会调用该程序的一个入口函数来调用系统的相关功能,而这些功能都被封装在不同的class文件中,所以经常要从这个class文件中调用另外一个class文件中的方法。而程序在启动的时候,并不会一次性加载程序所要用的所有class文件,而是根据程序的需要,通过java的类加载机制(ClassL转载 2016-10-16 21:13:29 · 290 阅读 · 0 评论