Java开发
文章平均质量分 82
网络与安全技术探索
从事网络安全业务的大头兵
展开
-
Java String 和 new String()的区别
栈区存引用和基本类型,不能存对象,而堆区存对象。==是比较地址,equals()比较对象内容。String str1 = "abcd"的实现过程:首先栈区创建str引用,然后在String池(独立于栈和堆而存在,存储不可变量)中寻找其指向的内容为"abcd"的对象,如果String池中没有,则创建一个,然后str指向String池中的对象,如果有,则直接将str1指向"abcd"";如果后转载 2017-02-16 19:41:34 · 1098 阅读 · 0 评论 -
SpringMVC中使用Interceptor拦截器
转自http://elim.iteye.com/blog/1750680 SpringMVC中的Interceptor拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306那样子判断当前时间是否是购票时间。 一、定义Interceptor实现类 SpringMV转载 2017-10-26 19:02:55 · 282 阅读 · 0 评论 -
Java常用消息队列原理介绍及性能对比
消息队列使用场景为什么会需要消息队列(MQ)? 解耦 在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 冗余 有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它原创 2017-11-27 20:28:12 · 93018 阅读 · 14 评论 -
spring事务传播属性和隔离级别
事务的传播属性(Propagation)Propagation支持7种不同的传播机制: REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。(默认属性) SUPPORTS: 如果存在一个事务,支持当前事务。如果没有事务,则以非事务的执行。但是对于事务同步的事务管理器,PROPAGATION_SUPPORTS与不使用事务有少许不同。 NOT_SUPPORTED:总原创 2017-12-27 11:37:42 · 471 阅读 · 0 评论 -
String和StringBuffer的区别
String: 是对象不是原始类型. 为不可变对象,一旦被创建,就不能修改它的值. 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. String 是final类,即不能被继承. StringBuffer: 是一个可变对象,当对他进行修改的原创 2017-02-16 19:58:01 · 552 阅读 · 0 评论 -
java变量的初始化之后的默认值
类的成员变量不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。2、单精度浮点型(float)的基本类型变量的默认值为0.0f。3、双精度浮点型(double)的基本类型变量的默认值为0.0d。4、字符型(char)的基本类型变量的默认为 “/u0000转载 2018-01-12 22:06:24 · 339 阅读 · 0 评论 -
Java常见面试题
“==”和Equals的区别①对于基本类型的变量: “==”是判断两个变量的值是否相同; “equal”不能用于基本数据类型。只能用于类变量; ②对于对象变量: 因为对象变量的存储的是对象在内存中的路径,即内存地址。 所以用”==”比较时,即使对象的值相等,但是他们的内存地址不同,所以==的结果为false。故”==”用于比较两个变量的值是否相等,而不是变量引用的对象是否相等; e原创 2017-06-28 22:59:02 · 508 阅读 · 0 评论 -
java参数传递
java参数传递方式当一个对象被当作参数传递到一个方法后,在此方法内可以改变这个对象的属性,那么这里到底是值传递还是引用传递? 答:是按值传递。Java 语言的参数传递只有按值传递。当一个实例对象作为参数被传递到方法中时,参数的值就是该对象的引用的一个副本。指向同一个对象,对象的内容可以在被调用的方法内改变,但对象的引用(不是引用的副本) 是永远不会改变的。 Java的参数传递,不管是基本原创 2018-04-26 21:15:34 · 581 阅读 · 0 评论 -
logback 配置详解
一:根节点<configuration>包含的属性: scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打...转载 2018-10-22 11:13:33 · 254 阅读 · 0 评论 -
java List复制:浅拷贝与深拷贝
List浅拷贝众所周知,list本质上是数组,而数组的是以地址的形式进行存储。 如上图将list A浅拷贝给list B,由于进行的是浅拷贝,所以直接将A的内容复制给了B,java中相同内容的数组指向同一地址,即进行浅拷贝后A与B指向同一地址。造成的后果就是,...转载 2019-06-13 17:11:22 · 9880 阅读 · 1 评论 -
Map.Entry学习和详解
Map.Entry的定义Map的entrySet()方法返回一个实现Map.Entry接口的对象集合。集合中每个对象都是底层Map中一个特定的键/值对。通过这个集合的迭代器,获得每一个条目(唯一获取方式)的键或值并对值进行更改。Map.Entry中的常用方法如下所示: (1) Object getKey(): 返回条目的关键字 (2) Object getV...原创 2018-05-01 19:50:30 · 50488 阅读 · 6 评论 -
Java并发编程:volatile关键字解析
Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...转载 2017-08-29 23:32:05 · 273 阅读 · 0 评论 -
Java线程安全的容器与介绍
Java基本容器介绍 Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。Set和List两个类继承于它。Set中不能包含重复的元素,也没有顺序来存放。而List是一个有序的集合,可以包含重复的元素。 而Map又是另一个接口,它和Collection接口没有关系。Map包含了key-value键值对,同一个Map里key是不能重复的,而不同key的value原创 2017-09-27 23:18:55 · 2444 阅读 · 0 评论 -
mybatis使用总结
公司目前使用springmvc+maven+mybatis开发项目,用到了数据库中一对多的关系,所以做此总结。mapper代理开发dao使用mapper代理开发dao时,需要编写mapper.xml映射文件以及mapper接口。<mapper namespace="com.zyuc.fw.basic.service.repository.mapper.IFwAclPolicyMapper">原创 2019-07-01 16:43:13 · 377 阅读 · 0 评论 -
LOMBOK使用记录
lombok简介无意中发现的小工具lombok,非常方便。使用之后可以去掉JavaBean中的构造器、getter、setter、equals、hashcode、toString等方法。 lombok的官方地址:https://projectlombok.org/lombok的Github地址:https://github.com/rzwitserloot/lomboklombok是一个可以通过简原创 2017-10-24 21:00:37 · 288 阅读 · 0 评论 -
Cannot make a static reference to the non-static method的解决方法
报错原因:在一个类中写了一个public String getContent()方法和一个main()方法,getContent()方法中包含了getClass()方法,在main()方法中直接调用了getContent()就出现如题的错误。这样一样解决方法:先实例化类,然后再调用getContent()就没有问题了GetProperties gp = new GetPropert转载 2017-03-01 18:41:13 · 5663 阅读 · 0 评论 -
Java为什么不能继承多个父类
Java为什么不能继承多个父类多重继承是一件很复杂、很容易产生问题的功能。它跟Goto语句一样,利弊交织。 以下分两部分叙述,第一部分是Python多重继承遇到的麻烦,第二部分是Jav转载 2017-03-11 23:17:59 · 6784 阅读 · 0 评论 -
Java常量池详解之抓狂的面试题
一道很让人头疼的Java面试题。好像也不太像面向应届生的题目,不过里边一些了解一下还是不错的。转载 2017-04-02 21:49:23 · 473 阅读 · 0 评论 -
ConcurrentMap、hashTable与hashMap的区别
ConcurrentMap、hashTable与hashMap的区别hashMap1、HashMap默认不是线程安全的。 2、HashMap是map接口的实例,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。 3、HashMap允许null key和null value,而hashtable不允许。 4、因为线程安全的问题,HashMap效率比HashTable原创 2017-04-10 19:41:03 · 11080 阅读 · 0 评论 -
Java编码规范
Java编码规范原创 2017-08-01 19:46:15 · 490 阅读 · 0 评论 -
初探Java源码之ArrayList
在我们的日常开发中,集合类是我们基本上每个人都会用经常用到的东西,用着用着,突然有一天我心生好奇,那么java集合类的这些源码是什么呢?那么我打算接下来一个一个的查看一些常用的类源码争取达到心中有数的水平~~本文源码均来自Java 8总体介绍Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。Set和List两个类继承于它。Set中不能包含重复的元素,也没有转载 2017-09-06 18:45:23 · 267 阅读 · 0 评论 -
Java8之lambda表达式
概述 ##一个lambda表达式是一个带有参数的代码块; 当你想把代码块在以后的某个时间执行时,可以使用lambda表达式;lambda表达式可以转换为函数式接口;lambda表达式可以在闭包作用域中有效地访问final变量;方法和构造器引用可以引用方法或构造器,但无需调用它们;可以向接口添加默认(default)和静态(static)方法来提供具体的实现;必须解决接口中多个原创 2017-04-27 00:23:42 · 403 阅读 · 0 评论 -
Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书《Building Microservices》。该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统。除此之外,该书还将基于该模式的系统演化流程与Continuous Delivery等当前甚为流行的开发流程结合在了一起,使得Microse转载 2017-09-01 14:23:18 · 368 阅读 · 0 评论 -
各大公司Java后端开发面试题总结
各大公司Java后端开发面试题总结 2017-10-10Java团长 Java团长 Java团长Java团长 微信号 javatuanzhang 功能介绍 分享Java学习方法,提供Java免费学习资源! ThreadLocal(线程变量副本)Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。转载 2017-10-10 20:53:05 · 510 阅读 · 0 评论 -
springmvc源码分析----入门看springmvc的加载过程
接上一篇我们写的入门---http://www.cnblogs.com/duanxiaojun/p/6591448.html今天从这个门里进去我们看springmvc是如何在容器启动的时候将各个模块加载完成容器的创建的。我知道在web.xml文件中我们是这样配置springmvc的:我们的加载的入口就是dispatcherServlet。上一篇中我们说到了dispatcherSer转载 2017-10-11 18:39:14 · 472 阅读 · 0 评论 -
有状态的bean和无状态的bean的区别
有状态对象(Stateful Bean) :就是有实例变量的对象,可以保存数据,是非线程安全的。每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最初都会得到一个初始的bean。 无状态对象(Stateless Bean):就是没有实例变量的对象,不能保存数据,是不变类,是线程安原创 2017-11-07 17:49:52 · 12407 阅读 · 6 评论 -
RSA+SHA256+BASE64对数据进行加密解密及校验
需求需要实现加密的认证机制认证原理a) 密钥分配:RSA算法通过工具或方法调用生成公钥和私钥(1024bit),请求端使用公钥,服务端使用私钥。 b) 加密方式:请求端通过密钥分配获取公钥,根据RSA加密算法将进行哈希后的明文请求进行公钥加密生成token;服务端通过密钥分配获取私钥,根据RSA解密算法将请求端的token进行私钥解密。 c) 认证方式:在服务端,如果明文请求的哈希值和私钥原创 2020-07-28 09:11:38 · 16525 阅读 · 8 评论 -
java异常处理
Java异常处理原创 2017-04-01 23:36:15 · 518 阅读 · 0 评论