Java
文章平均质量分 93
陈_小哥哥
96年,IT作为我的职业道路,在这条道路上,资历尚浅,需不断积累,总结。
展开
-
java @Data 注解 set get 方法
@Data 注解在实体类的使用可省去生成GET,SET方法你有没有觉得在每个实体类中都要生成get,set方法很麻烦,要是需求的变化,需要再加一个字段,添加属性后则又要添加其get,set方法现有一个很好用的注解能解决这个麻烦1,idea中装上 lombok-plugin 这插件,按照idea的提示安装完,重启idea即可完成安装 本人的这已经安装了2,...原创 2019-10-16 15:20:54 · 4857 阅读 · 0 评论 -
Jsp中EL表达式的使用
1、什么是EL EL是JSP表达式语言,全称是ExpressionLanguage,使用EL的目的是简化在JSP中访问变量的方式,简单静态HTML与Java代码的耦合。下面来看看一个例子:[html] view plain copy<%@ page language="java" contentType="text/html; charset=ISO-8859-1" ...转载 2018-07-18 21:37:44 · 745 阅读 · 0 评论 -
数据库索引
简介编辑索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这一列上建立的索引),即可在索引中查找。由于索引是经过某种算法优化过的,因而查找次数要少的多。可见,...原创 2018-07-08 10:49:24 · 179 阅读 · 0 评论 -
java IO和NIO的区别
一、概念 NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO,另一套就是网络编程NIO。二、NIO和IO的主要区别下表总结了Java IO和NIO之间的主要区别:IO NIO 面向流 面...转载 2018-07-29 18:26:07 · 156 阅读 · 0 评论 -
JAVA 中常用的集合类
java中的集合,不管是List,Set,还是Map,都是继承自collection接口,这个接口主要定义了集合类的一些公关方法,比如isEmpty(), remove(),add()等,在使用集合类的时候除了顺序遍历,还提供了一种方便的迭代器遍历的方法,在遍历过程中需要remove元素的必须试用迭代器遍历(在删除元素时,集合内部的index会发生变化,使用顺序遍历可能会产生uninde...转载 2018-07-29 18:45:15 · 131 阅读 · 0 评论 -
Shiro笔记(一)----Shiro安全框架简介
一、Shiro简介 Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使其能完成与其...转载 2018-07-29 19:20:40 · 266 阅读 · 0 评论 -
Spring——bean作用范围
10 bean作用范围(scope)在Spring中使用Scope来表示一个bean定义对应产生实例的类型,也可以说是对应实例的作用范围。Spring内置支持的scope严格来说默认是有五种,分别是:singleton:这是默认Scope,表示在整个bean容器中或者说是整个应用中只会有一个实例。 prototype:多例类型,表示每次从bean容器中都会获取到一个对应bean定义全新的...转载 2018-07-30 08:02:29 · 2140 阅读 · 0 评论 -
java 遍历Map 的五种方法
遍历Map的方法, 我总结了5种, CoreJava中给出的是第一种使用forEach+lambda表达式, 我认为这种方法应该是最好的, 但是只能在Java8之后的版本使用;建议优先使用第一种和第四种(类似第二种);遍历Map:第一种可以使用Map的forEach方法加上Java8的lambda表达式: 第二种可以使用Map.Entry来遍历Map的条目: 第...转载 2018-11-18 21:35:43 · 978 阅读 · 0 评论 -
Java线程池使用说明
Java线程池使用说明一简介线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的。在jdk1.5之后这一情况有了很大的改观。Jdk1.5之后加入了java.util.concurrent包,这个包中主要介绍java中线程以及线程池的使用。为我们在开发中处理线程的问题提供了非常大的帮助。二:线程池线程池的作用:线程池作用就是限制系统中执行线程的...转载 2018-07-06 10:09:55 · 118 阅读 · 0 评论 -
三大UML建模工具Visio、Rational Rose、PowerDesign的区别
UML建模工具Visio 、Rational Rose、PowerDesign的比较 ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建模的支持,但是在现在的版本中已经加入数据库建模的功能。ROSE主要是在开发过程中的各种语义、模块、对象以及流程,状态等描述比较好,主要体现在能够从各个方面和角度来分析和设计,使软件的开发蓝图更清晰,内...转载 2018-07-11 13:53:24 · 1886 阅读 · 0 评论 -
Java代码调用存储过程和存储方法
准备一个oracle 的JDBC jar 包:ojdbc14_11g.jar首先找到你的 oracle 安装位置,例如:1.创建一个JDBC数据库连接工具类:[java] view plain copypackage com.test.db; import java.sql.Connection; import java.sql.DriverManager; import java.sq...转载 2018-06-26 19:37:54 · 332 阅读 · 0 评论 -
Redis的持久化操作配置和原理
RDB是redis将内存数据存储到磁盘文件的其中一种方式(另一种是AOF)。我们可以在redis.conf文件中,做一些针对RDB的设置。参考“redis 配置文件 snapshotting RDB数据库快照部分”,有中英文的对照翻译。################################ 快照 ################################# # # Save ...转载 2018-07-09 18:03:08 · 141 阅读 · 0 评论 -
redis 配置文件 aof持久化
默认情况下Redis会异步的将数据导出到磁盘上。这种模式对许多应用程序已经足够了,#但是如果断电或者redis进程出问题就会导致一段时间内的更新数据丢失(取决与配置项)##这种只增文件是可选的能够提供更好的体验的数据持久化策略。#举个例子,如果使用默认的配置数据fsync策略,在服务器意外断电的情况下redis只会丢失一秒中内的更新数据,#或者当redis进程出问题但操作系统运转正常时,redis...转载 2018-07-09 19:58:21 · 247 阅读 · 0 评论 -
线程池的使用(ThreadPoolExecutor详解)
为什么要使用线程池?线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 另一方面,大多数实际场景中是这样的:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术背景下,如果我们为每一个请求都单独创建一个线程,那么物理机的所有资源基本上都被操作系统创建线程、切换...转载 2018-06-27 21:15:08 · 199 阅读 · 0 评论 -
常见的四种线程池和区别
线程池能有效的处理多个线程的并发问题,避免大量的线程因为互相强占系统资源导致阻塞现象,能够有效的降低频繁创建和销毁线程对性能所带来的开销。真正线程池的实现是通过ThreadPoolExecutor,ThreadPoolExecutor通过配置不同的参数配置来创建线程池。下面简单的介绍一下各个线程池的区别和用处。(1)fixThreadPool 正规线程 我的理解这是一个有指定的...转载 2018-07-04 12:14:02 · 421 阅读 · 0 评论 -
如何实现一个简单的RPC
在如何给老婆解释什么是RPC中,我们讨论了RPC的实现思路。那么这一次,就让我们通过代码来实现一个简单的RPC吧!RPC的实现原理正如上一讲所说,RPC主要是为了解决的两个问题:解决分布式系统中,服务之间的调用问题。 远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。还是以计算器Calculator为例,如果实现类CalculatorImpl是放在本地的,那么...转载 2018-11-29 09:53:07 · 155 阅读 · 0 评论 -
架构师之路-在Dubbo中开发REST风格的远程调用
概述dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持。有鉴于...转载 2018-11-29 10:09:38 · 571 阅读 · 0 评论 -
项目启动中报错Address already in use: bind
启动项目时,报出如下错误,通过错误提示可以看到端口被占用了。查看日志可以看到被占用的端口为10001这个问题的解决方案:打开cmd命令行,执行命令netstat -ano|findstr "10001"查看10001端口是否被占用及占用此端口的PID,从下图中可以看到占用端口的进程ID(PID)为11660执行命令tasklist|findstr "11660"...原创 2019-10-09 14:35:37 · 693 阅读 · 0 评论 -
如何重写hashCode()和equals()方法
转载:http://blog.csdn.net/neosmith/article/details/17068365hashCode()和equals()方法可以说是Java完全面向对象的一大特色.它为我们的编程提供便利的同时也带来了很多危险.这篇文章我们就讨论一下如何正解理解和使用这2个方法.https://blog.csdn.net/u012767369/article/details/...原创 2019-09-08 16:35:42 · 164 阅读 · 0 评论 -
RSA 加密,解密,加签,验签
一、RSA加密简介 RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。 二、RSA加密、签名区别 加密和签名...原创 2019-08-13 12:00:25 · 219 阅读 · 0 评论 -
代理模式是什么,Spring AOP还和它有关系?
定义什么是代理模式?代理模式,也叫委托模式,其定义是给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。它包含了三个角色:Subject:抽象主题角色。可以是抽象类也可以是接口,是一个最普通的业务类型定义。RealSubject:具体主题角色,也就是被代理的对象,是业务逻辑的具体执行者。Proxy:代理主题角色。负责读具体主题角色的引用,通过真实角色的业务逻辑方法来实...转载 2019-07-22 13:56:41 · 175 阅读 · 0 评论 -
深入理解Java中this关键字的使用
Java提供了一个this关键字,this关键字总是指向调用该方法的对象。根据this出现的位置的不同,this作为对象的默认引用有两种情形。构造器中引用该构造器正在初始化的对象。 在方法中引用调用该方法的对象。this关键字最大的作用就是让类中一个方法,访问该类里的另一个方法或者实例变量。假设定义了一个Person类,这个Person对象的eat()方法需要调用它的move()方法,则如...转载 2019-04-21 19:35:51 · 275 阅读 · 0 评论 -
Java中的DataInputStream和DataOutputStream的作用
1.有时没有必要存储整个对象的信息,而只是要存储一个对象的成员数据,成员数据的类型假设都是Java的基本数据类型,这样的需求不必使用到与Object输入、输出相关的流对象,可以使用DataInputStream、DataOutputStream来写入或读出数据。下面是一个例子:Java代码package ysu.hxy;public class Member {private String...转载 2019-02-20 17:00:38 · 1016 阅读 · 0 评论 -
Java 一次性读取整个txt.文件,并解析
private void executeTransaction(String file) throws Exception { String filePath=file.replace("/","\\"); BusinessObjectManager bom = null; Business...原创 2019-02-20 09:35:10 · 3666 阅读 · 0 评论 -
JWT入门教程
一、跨域认证的问题互联网服务离不开用户认证。一般流程是下面这样。1、用户向服务器发送用户名和密码。2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。3、服务器向用户返回一个 session_id,写入用户的 Cookie。4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。5、服务器收到 s...转载 2019-02-25 15:45:55 · 759 阅读 · 1 评论 -
spring参数效验 @JSONField
FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个:修改和json字符串的字段映射【name】 格式化数据【format】 过滤掉不需要序列化的字段【serialize】一、修改字段映射使用方法: private Integer aid; // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中...转载 2019-02-28 14:31:50 · 1153 阅读 · 0 评论 -
Java中的注解 - @NotNull
比如说,你写了一个后台系统,接收用户的请求,经过运算后返回结果,很通用的一个实现方案。假定所有的方法都需要校验参数是否为空,不然就可能有NullPointerException,如果系统有N个接口,每个接口参数有M个,你需要写N * M个if判断语句。如if (StringUtils.isBlank(request.getA())) { throw new IllegalArgume...转载 2019-02-28 09:24:57 · 41606 阅读 · 9 评论 -
Linux -crontab 定时任务时间配置
名称 : crontab使用权限 : root用户和crontab文件的所有者语法 :crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]说明 :crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是...原创 2019-02-27 16:04:39 · 937 阅读 · 0 评论 -
map.toString() 和 JSONObject.toJSONString( map ) 的结果是有区别的
1 .Map<String, Integer> map = new HashMap<>();map.put( "staff9", 1 );map.put( "staff1", 3 );System.out.println( map.toString() ); // 结果是 {staff9=1, staff1=3} // JSONObject...转载 2019-02-15 13:46:05 · 2331 阅读 · 0 评论 -
java 循环读取数据
1.最常用的方法。循环找出该位子的list元素for(int i = 0;i < list.size(); i ++){System.out.println(list.get(i));}2.利用Iterator 类和while方法Iterator it1 = list.iterator();while(it1.hasNext()){System.out.println(it1.n...转载 2019-02-14 16:49:59 · 1715 阅读 · 0 评论 -
indexof
利用循环和indexof()方法继续查找第二次出现的位置public class Test{public static void main(String[] args){int count = 0;int index = 0;for(;;){String s = "sunjavahpjavaaokjavajavahahajavajavagoodjava";String sToF...转载 2019-01-19 15:18:01 · 370 阅读 · 0 评论 -
HashMap和HashSet的区别
1、为什么用HashMap?HashMap是一个散列桶(数组和链表),它存储的内容是键值对(key-value)映射 HashMap采用了数组和链表的数据结构,能在查询和修改方便继承了数组的线性查找和链表的寻址修改 HashMap是非synchronized,所以HashMap很快 HashMap可以接受null键和值,而Hashtable则不能(原因就是equlas()方法需要对象,因...转载 2018-11-30 12:49:21 · 49479 阅读 · 8 评论 -
数据库迁移
我们常常需要对数据进行迁移,迁移到更加高级的主机上、迁移到远程的机房上、迁移到不同的平台下…… 一、exp/imp: 这也算是最常用最简单的方法了,一般是基于应用的owner级做导出导入。 操作方法为:在新库建立好owner和表空间,停老库的应用,在老库做exp user/pwd owner=XXX file=exp_xxx.dmplog=exp_xxx.log buffer=600000...转载 2018-06-10 22:32:54 · 169 阅读 · 0 评论 -
String 字符创的截取方式
1.split()+正则表达式来进行截取。将正则传入split()。返回的是一个字符串数组类型。不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时。 [html] view plain copyString str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.le...转载 2018-06-10 20:48:49 · 688 阅读 · 0 评论 -
equals 和contains的区别
equals是判断字符串的是不是相等,例如:"abc".equals("abc"),返回结果是Boolean类型的true"abc".equals("ab")返回结果是Boolean类型的falsecontains是包含的意思,例如:"abc".contains("a"),返回结果是Boolean类型的true"abc".contains("d"),返回结果是Boolean类型的false.原创 2018-01-13 15:37:25 · 1109 阅读 · 0 评论 -
java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
今天看一个例子,里面用到File类的getCanonicalPath()方法,忽然忘记这个方法返回的是什么样的路径了,跟getPath()和getAbsolutePath()有什么区别?带着这两个问题查了下文档,得到的结论如下:getPath():返回的是定义时的路径,可能是相对路径,也可能是绝对路径,这个取决于定义时用的是相对路径还是绝对路径。如果定义时用的是绝对路径,那么使用getPath()转载 2018-01-02 16:04:50 · 389 阅读 · 0 评论 -
性能优化模式
性能优化模式转载 2018-01-02 16:00:59 · 618 阅读 · 0 评论 -
java 遍历文件下的子文件方法
java 如何递归遍历一个文件夹下的所有文件 标签: 递归 2016-02-26 22:41 5122人阅读 评论(0) 收藏 举报 分类: JAVA(17) 作者同类文章X数据结构与算法(2) 作者同类文章X版权声明:本文为博主原创文章,未经博主允许不得转载。1.利用File类中的一个listFiles将该文件路径下所有的文件全部列出来,然后通过循环遍历。代码如下:import jav转载 2018-01-02 15:57:27 · 197 阅读 · 0 评论 -
java实体类toString方法
先认识一下ObjectObject 类的 toString 方法 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于: getClass().getName() + '@' + Integer.toHexString(hash转载 2017-12-25 11:11:42 · 1333 阅读 · 0 评论 -
单例模式
public class SingleObject { private static SingleObject single=new SingleObject(); private SingleObject(){ } public static SingleObject getInstance(){ return single; }}原创 2017-11-24 16:51:31 · 154 阅读 · 0 评论