java基础
文章平均质量分 82
码农书生
这个作者很懒,什么都没留下…
展开
-
Java 8 Stream
Java 8 StreamJava 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(int原创 2021-02-23 15:32:41 · 221 阅读 · 0 评论 -
Spring 事件通知
Spring事件通知1.编写自定义的事件载体对象/** * @Author:qmfang * @Description: 继承自事件对象,表明将其作为一个事件通知对象 * @Date:Created in 10:35 2018/4/8 * @Modified By: */@Datapublic class BlackListEvent extends ApplicationEvent { ...转载 2018-07-16 11:57:19 · 1613 阅读 · 0 评论 -
Java时间日期格式转换
Java时间格式转换大全import java.text.*;import java.util.Calendar;public class VeDate {/** * 获取现在时间 * * @return 返回时间类型 yyyy-MM-dd HH:mm:ss */public static Date getNowDate() { Date current...转载 2018-02-24 17:40:52 · 208 阅读 · 0 评论 -
对List集合中的元素进行排序
Collections对List集合中的数据进行排序有时候需要对集合中的元素按照一定的规则进行排序,这就需要用到Java中提供的对集合进行操作的工具类Collections,其中的sort方法先看一个简单的例子:[java] view plain copypublic static void main(String[] args) { List<Integer> nums =...转载 2018-02-24 17:36:54 · 885 阅读 · 0 评论 -
原生和jQuery的ajax用法
form数据的序列化:$('#submit').click(function(){ $('#form').serialize(); //会根据input里面的name,把数据序列化成字符串;eg:name=yang $('#form').serializeArray(); //会根据input里面的name,把数据序列化成数组;eg:[object] //注意...转载 2018-02-24 17:24:09 · 123 阅读 · 0 评论 -
ActiveMQ入门实例Demo
1、下载:http://activemq.apache.org/download.html 最新Windows版本 2、安装直接解压至任意目录(例如:D:\apache-activemq-5.3.0) 3、启动ActiveMQ服务器:直接运行\bin\win32\activemq.bat当运行成功后,界面显示: Started SelectChannelConnector@0.转载 2018-02-02 14:43:56 · 257 阅读 · 0 评论 -
Java-读取本地文件
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;/** * @author lijinzhou * @since 2018/2/2 14:12 */public class ReadTxtFileUti原创 2018-02-02 14:38:02 · 6637 阅读 · 1 评论 -
详说 Cookie, LocalStorage 与 SessionStorage
基本概念CookieCookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。localStoragelocalStora转载 2018-01-26 11:31:17 · 289 阅读 · 0 评论 -
实时搜索引擎Elasticsearch(1)——基础概念、安装和运行
Elasticsearch(简称ES)是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。Elasticsearch简介Elasticsearch是什么Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是专有领域,Luce转载 2018-01-26 11:27:40 · 383 阅读 · 0 评论 -
JAVA使用easyexcel easypoi 操作Excel
easyexcel项目主页地址:https://github.com/alibaba/easyexcel参考地址1:https://blog.csdn.net/jianggujin/article/details/80200400参考地址2:https://blog.csdn.net/jiangjiandecsd/article/details/81115622EasyPo...原创 2018-10-17 13:51:35 · 9189 阅读 · 0 评论 -
byte[]和InputStream的相互转换
1:byte[]转换为InputStream InputStream sbs = new ByteArrayInputStream(byte[] buf); 2:InputStream转换为InputStreambyte[] ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new b...转载 2018-11-05 10:04:01 · 31872 阅读 · 0 评论 -
TreeMap 排序
一、TreeMapTreeMap 默认排序规则:按照key的字典顺序来排序(升序)当然,也可以自定义排序规则:要实现Comparator接口。用法简单,先看下下面的demopublic class SortDemo { public static void main(String[] args) { System.out.println("-------...转载 2018-11-05 10:07:08 · 15510 阅读 · 0 评论 -
Java8中Map的遍历方式总结
public class LambdaMap { private Map<String, Object> map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "valu...原创 2019-07-24 14:16:04 · 953 阅读 · 0 评论 -
java 23种设计模式 深入理解
以下是学习过程中查询的资料,别人总结的资料,比较容易理解(站在各位巨人的肩膀上,望博主勿究)创建型抽象工厂模式http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html工厂方法http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html...原创 2019-06-10 11:04:38 · 141 阅读 · 0 评论 -
Java高并发,如何解决,什么方式解决
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就坦然面对吧~今天就让我们一起来研究一下常见的并发和同步吧。为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和异步1、同步和异步的区别和联系 所谓同步,可以理解为在执行完一个函数或方法之后,一直等待...转载 2019-03-13 14:38:50 · 237 阅读 · 0 评论 -
浅谈HTTP中Get与Post的区别
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 1....转载 2019-03-13 14:33:53 · 564 阅读 · 0 评论 -
Java高级面试题及答案
List和Set比较,各自的子类比较对比一:Arraylist与LinkedList的比较1、ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高(在内存里是连着放的)。2、因为地址连续, ArrayList要移动数据,所以插入和删除操作效率比较低。3、LinkedList基于链表的数据结构,地址是任意的,所以在开辟内存空间的...转载 2019-03-13 14:29:23 · 579 阅读 · 0 评论 -
@Validated和@Valid区别:Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated
Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。其中对于字段的特定验证注解比如@NotNull等网上到处都有,这里不详述在检验Controller的入参是否符合规范时,使用@...转载 2019-03-13 14:25:44 · 457 阅读 · 0 评论 -
ThreadLocalRandom类原理
2.2、 并发包中ThreadLocalRandom类原理剖析ThreadLocalRandom类是JDK7在JUC包下新增的随机数生成器,它解决了Random类在多线程下多个线程竞争内部唯一的原子性种子变量而导致大量线程自旋重试的不足。本节首先讲解下Random类的实现原理已经它在多线程下使用的局限性,然后引入ThreadLocalRandom类,通过讲解ThreadLocalRandom的...转载 2019-03-21 14:09:14 · 172 阅读 · 0 评论 -
详解mysql的for update
前言近期开发与钱相关的项目,在高并发场景下对数据的准确行有很高的要求,用到了for update,故总结一波以便日后留恋。本文讲解几个点: 1.for update的使用场景 2.for update如何使用 3.for update的锁表 4.for update的注意点 5.for update的疑问点for update的使用场景如果遇到存在高并发并且对于数据的准确性很...转载 2018-11-05 10:18:31 · 142 阅读 · 0 评论 -
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
转自http://blog.163.com/zhangjie_0303/blog/static/9908270620146951355834/1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select转载 2018-01-26 11:22:58 · 185 阅读 · 0 评论 -
Mysql索引及优化使用总结
Mysql索引及优化使用总结:在关系数据库中,索引的使用十分重要,而且所有的关系数据库支持索引机制,因为有了索引之后,在大数据量检索数据时速度很快,性能消耗很低;当然,凡事有利必有弊,增加索引也会增加数据库系统的开销,我们很多时候需要在性能和检索间折中设计,而且正确使用索引及对他维护和优化是很重要的! · 索引的类型?· 索引的原理?·转载 2018-01-26 11:21:01 · 222 阅读 · 0 评论 -
java获取对象属性类型、属性名称、属性值
[java] view plain copy/** * 根据属性名获取属性值 * */ private Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.转载 2018-01-03 15:55:12 · 516 阅读 · 0 评论 -
BigDecimal 使用
java.math.BigDecimal。BigDecimal一共有4个够造方法,让我先来看看其中的两种用法:第一种:BigDecimal(double val)Translates a double into a BigDecimal.第二种:BigDecimal(String val)Translates the String repre sentation of a原创 2017-06-05 16:48:29 · 383 阅读 · 0 评论 -
浅析VO、DTO、DO、PO的概念、区别和用处
概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。转载 2017-06-05 16:51:59 · 439 阅读 · 0 评论 -
javaWeb开发面试题目
1.编码转换:怎样将 GB2312 编码的字符串转换为 ISO-8859-1 编码的字符串 ?【基础】答:示例代码如下 :String s1 = " 你好 ";String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1");2.写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 【基础】答:原创 2017-06-11 15:47:10 · 870 阅读 · 0 评论 -
Java【public、private、protected区别】-访问权限
public,protected,private是Java里用来定义成员的访问权限的,另外还有一种是“default”,也就是在成员前不加任何权限修饰符。如: public class A{ void method(){}; } method就属于default权限。 这四个修饰符的访问权限如下表: -------------------------转载 2017-07-05 16:40:15 · 446 阅读 · 0 评论 -
时间戳转换
1、时间戳的定义 时间戳是指文件属性里的创建、修改、访问时间。 数字时间戳技术是数字签名技术一种变种的应用。在电子商务交易文件中,时间是十分重要的信息。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容。数字时间戳服务(DTS:digital time stamp service)是网上电子商务安全服务项目之一,能提供电子文件的日期和时间转载 2017-08-08 10:42:48 · 558 阅读 · 0 评论 -
Java四种线程池的使用
ava通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。n转载 2017-08-08 11:07:50 · 553 阅读 · 0 评论 -
Java 日期时间
java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date()第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。Date(longmillisec)Date对象创建以后,可以调用下面的转载 2017-08-09 14:32:11 · 468 阅读 · 0 评论 -
java8新的时间日期库及使用示例
来自:Java译站链接:http://it.deepinmind.com/java/2015/03/17/20-examples-of-date-and-time-api-from-Java8.html英文:http://javarevisited.blogspot.sg/2015/03/20-examples-of-date-and-time-api-from-Java8.htm转载 2017-08-09 15:07:33 · 342 阅读 · 0 评论 -
Java电话号码和手机号码正则验证
/** * 手机号验证 * * @param str * @return 验证通过返回true */ public static boolean isMobile(String str) { Pattern p = null; Matcher m = null;转载 2017-06-05 16:36:36 · 3449 阅读 · 0 评论 -
Java 截取反斜杠--java使用split拆分特殊字符
Java 截取反斜杠 replaceAll和split (“\”) 问题解决办法 2009年07月15日 星期三 上午 11:26 xxx.split("\\") 显然得不到想要的结果 正确方法 xxx.split("\\\\"); 原因如下: 在Java中处理一些路径相关的问题的时候,如要取出ie浏览器上传文件的文件名,由于ie会把整个文件路径都作为文转载 2017-06-05 15:57:48 · 10314 阅读 · 1 评论 -
Java-大集合拆分为指定大小的小集合
/** * 拆分集合 * @param * @param resList 要拆分的集合 * @param count 每个集合的元素个数 * @return 返回拆分后的各个集合 */ public static List> split(List resList,int count){原创 2017-04-27 19:59:42 · 1933 阅读 · 0 评论 -
StringUtils的isBlank与isEmply
1.public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 下面是 StringUtils 判断是否为空的示例: StringUtils.isEmpty(null) = true转载 2017-11-24 17:25:58 · 239 阅读 · 0 评论 -
Java中的Error和Exceptiond的异同点
Error和Exception的异同点:(1)Error类和Exception类都继承超类Java.lang.Throwable(2)Error:一般指与虚拟机相关的问题,如系统崩溃,内存溢出等。对于这类错误,仅靠程序本身无法恢复和预防,遇到这样的错误,建议让程序终止。 Exception:一般是(开发人员)人为导致的错误,可以是可控制(checked)的异常,转载 2017-11-14 16:20:55 · 262 阅读 · 0 评论 -
Final、finally、finalize区别
1、finalFinal可以用于成员变量(包括方法参数),方法、类。Final成员 作为变量变量一旦被初始化便不可改变(对于基本类型,指的是值不变;对于对象类型,指的是引用不变),初始化只可能在两个地方:定义处和构造函数。作为方法参数对于基本类型,定义成final参数没有什么意义,因为基本类型就是传值,不会影响调用语句转载 2017-11-14 16:19:22 · 205 阅读 · 0 评论 -
反射
0.反射知识体系下图为反射整体的知识体系,把握住此图也就全局上掌握住反射所有内容。1.反射概论1)反射概念其实字面上可以这么理解反射,平时使用类时都是由类new出对象,而反射则是通过对象“反射”出类的信息,好比一个人照镜子可以看到人类的特征,而看出机制就是镜子反射。2)Java对象两种类型Java程序中的许多对象在运行时会出现两种转载 2017-03-02 15:29:50 · 255 阅读 · 0 评论 -
判断list里是否有重复元素/元素是否完全相同
充分利用类集的特性,Set中不允许有重复的元素。判断list中是否有重复元素[java] view plain copyimport java.util.ArrayList; import java.util.HashSet; import java.util.List; public class Test {转载 2017-06-05 16:45:11 · 11784 阅读 · 1 评论 -
Java中的递归思想
解释:程序调用自身的编程技巧叫做递归。程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来转载 2017-08-21 10:51:27 · 922 阅读 · 0 评论