java
文章平均质量分 74
浮生spider
java软件工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
springboot Mybatis 多个数据源配置
这个靠谱:https://www.cnblogs.com/Donnnnnn/p/12073424.html转载 2020-07-10 18:41:33 · 346 阅读 · 0 评论 -
Effect Java
使用静态工厂方法代替构造器 优点: 工厂方法有名称,可以知道对象是用来做什么的。 工厂方法可以空值返回对象方式:单例 or 多实例 or 其他。 可以返回原类型的子类型,使用放无感知,可以直接在工厂方法中切换具体实现。 ...原创 2020-07-08 22:35:56 · 668 阅读 · 0 评论 -
Spring 下载 Excel 中文名称问题
// 中文名乱码问题处理String filename="中文名文件.xlsx";filename = new String(filename.getBytes("UTF-8"), "iso-8859-1");response.setCharacterEncoding("UTF-8");response.setContentType("application/ms-excel; charset=UTF-8");response.setHeader("Content-Disposition", ".原创 2020-07-08 19:54:20 · 499 阅读 · 0 评论 -
JDK之Arrays类
Arrays类算是一个比较常用的类,之前一直没看过它的API,不知道这个类到底可以做什么,今天把源码翻了一遍,记一下这个类里面有用的方法。一开头是一些排序方法:...public static void sort(int[] a)public static void sort(int[] a, int fromIndex, int toIndex)public static v原创 2017-08-03 23:11:04 · 602 阅读 · 0 评论 -
JWT
前言:以往服务器鉴权的方式大多是使用Session,在初次登陆系统后,用户的信息将会记录在session中,后续再次访问时,页面只需发送session即可,无需再次验证信息。使用session验证的方式会有这样的一个问题:所有的登陆信息都存储在服务端,当访问量特别大的时候服务端的压力会比较大。并且在做单点登录或者分布式服务的时候,涉及如何实现session共享的问题。什么是JWT?...原创 2018-12-13 17:08:22 · 390 阅读 · 1 评论 -
加密算法简介
前言:在很多有数据传输的场合都需要对数据进行加密,目前有很多不同的加密算法,本文记录一些常用的加密算法。加密算法有哪些类别?1.对称加密算法如:DES,3DES,DESX,Blowfish,IDEA,RC4,RC5,RC6,AES2.非对称加密算法如:RSA,ECC,Diffie-hellman,EI Gamal,DSA3.Hash算法如:MD2,MD4,MD5,H...原创 2018-12-13 17:20:36 · 467 阅读 · 0 评论 -
JVM的内存区域简介
引言: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都 各自有用途,以及创建和销毁的时间,有的区域随着虚拟机进程的驱动而创建,有的是依赖用户线程的启动而创建。虚拟机的内存区域包括以下几个运行时数据区域:方法区,堆,虚拟机栈,本地方法栈,程序计数器。其中方法区和堆是线程共享的,其余区域是线程隔离的。下面是这些区域的用途以及...原创 2018-12-13 17:22:48 · 215 阅读 · 1 评论 -
JVM创建对象过程简介
引言: Java程序运行时无时无刻都有对象被创建出来,在语言层面上,创建对象只是通过一个new关键字,那么在JVM上对象是如何被创建出来的?JVM解析到new指令时,会去常量池中(方法区里面)定位该类的符号引用,并且检查该类是否被加载解析和 初始化。如果没有,执行类加载过程。 确认类加载后,jvm会为新生对象分配内存,该对象的内存在类加载完毕后就可以完全确定(文章末尾...原创 2018-12-13 17:23:26 · 303 阅读 · 0 评论 -
jvm类加载机制简介
我们都知道Java里的class文件在编译后产生class文件,这些class文件是编译后的字节码,jvm可以加载并运行这些字节码,这也是为什么Java会被称作一次编译,多处运行,因为字节码是平台无关的。那么jvm是如何加载这些class文件的? 虚拟机把描述类的数据从class文件中加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的...原创 2018-12-13 17:24:21 · 225 阅读 · 0 评论 -
java类加载器简介
在之前的文章中我们说过,在jvm的加载过程的加载阶段中,jvm加载类时只需要获取类的字节码即可,不是一定要从class文件中获取,也可以通过其他方式,比如war包,网络流,动态生成等等,这些获取类字节码的方式代码称为类加载器。对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器都拥有一个独立的类名空间。也就是说,比较俩个类相等,不仅要求其类本...原创 2018-12-13 17:24:49 · 389 阅读 · 0 评论 -
Java多线程核心技术编程笔记
1.不在synchronized块中的代码就是异步执行,在synchronized中的代码就是同步执行2.当一个线程访问Object的一个synchronized(this)同步代码块时,其他线程对同一个Object中所有其他synchronized(this)同步代码块的访问将被阻塞。3.多个线程调用同一个对象中不同名称的synchronized同步方法或者synchronized(th...原创 2018-12-13 17:25:29 · 187 阅读 · 0 评论 -
Java并发编程实践笔记
1.当某个计算正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件,最常见的竞态条件就是先检查后执行。2.先检查后执行的一种常见情况就是延迟初始化。(单例模式)3.为了线程安全,先检查后执行的这种操作必须要时原子性的,java里面用加锁的方式来保证原子性。4.要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。5.获得内置锁的唯一途径就是进入这个锁保护的同步代码...原创 2018-12-13 17:25:53 · 192 阅读 · 2 评论 -
JDK之HashMap中的indexFor(int h, int length)方法
今天看到了HashMap,发现其中有一个方法很奇怪,叫indexFor(int h, int length),这个方法返回的是某个hashcode对应到hash table的下标位置,代码是这么实现的:static int indexFor(int h, int length) { return h & (length-1); }看了半天才搞懂为什么这么写,其实Ha原创 2017-08-17 22:33:08 · 1195 阅读 · 0 评论 -
ArrayList实现中的SubList
最近在看JDK源码,看到ArrayList.java这个实现的时候,发现里里面有一个SubList子类,这个类里是直接操作父类的元素的,所以会对父类产生影响,可能以后会用错,在这里记下来。源码里面,ArrayList类中又下面这么个方法public ListE> subList(int fromIndex, int toIndex) { subListRangeCheck(fr原创 2017-08-02 22:32:31 · 815 阅读 · 0 评论 -
如何创建webservice以及如何调用现有的webservice
由于工作需要使用到webservice,项目框架为spring,webservice框架为CXF。一.如何使用CXF发布一个webservice服务1.首先下载CXF的程序压缩包,作者下载的是apache-cxf-3.1.8,将其中的lib目录下的包拷贝到项目的根目录下,由于作者的项目用的是spring框架,所以要把其中的有关spring的架包删除,要不然会冲突,记得将架包引入到项目中,如原创 2016-11-10 17:46:44 · 1378 阅读 · 0 评论 -
spring上传下载文件
不使用第三方上传和下载。上传文件:@RequestMapping(value = "/uploadFile", method = RequestMethod.POST) public void uploadFile(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest =原创 2016-12-11 19:54:41 · 468 阅读 · 0 评论 -
java常用工具方法
有一些常用的方法老是记不住,每次都要去网上找,在这里整合一下,以后就直接在这找了。一:小数的四舍五入String value = new BigDecimal("111231.5555").setScale(2, RoundingMode.HALF_UP).toPlainString();setScale的第一个参数为保留的小数位数,也可以使用doubleValue()等方法原创 2016-12-03 17:02:09 · 612 阅读 · 0 评论 -
java调用sap的RFC接口
sap目前是世界上最大的也是使用最多的ERP系统,很多大型系统都将自己的业务数据放到了SAP系统来进行管理,那么当别的系统需要这些数据时,就需要从SAP中获取这些数据。SAP中有各种不同类型的接口,RFC,PI等等。下面记录的是java如何调用RFC的接口。网上可以找到很多类似的文章,代码也是以前的老手写的,也比较易懂,这里再记下来主要是为了以后找起来方便。java调用RFC接口需要用到sap原创 2016-12-04 16:32:28 · 16655 阅读 · 2 评论 -
java如何实现webservice中wsdlLocation访问地址的可配置化
背景:项目中调用了别的系统的webservice接口,调用成功之后发现wsdlLocation的地址是写死的,不方便修改,所以需要实现地址,包括用户名密码的可配置。项目的框架是Spring,调用webservice使用的是CXF。实现可配置步骤:step1:在spring的配置文件中加入如下配置 cl原创 2017-02-15 14:56:31 · 26101 阅读 · 2 评论 -
mybaits如何批量更新数据库
mybaits中使用对象进行数据库批量更新的sql: update t_table when keyFiled = #{item.keyFiled} then #{item.databaseFiled1}原创 2017-05-31 13:33:15 · 697 阅读 · 0 评论 -
JDK之TimeZone
本来是看到Calendar这个类的,但是发现这个类里面很多地方使用的Time Zone这个类,不是很清楚这个类的作用,所以又跑去看了一下TimeZone。顾名思义,Time Zone这个类是用来控制时区的,时区的概念初中的时候就学过,什么美国东八区之类的,由于不同时区的时间不同,所以这个类在java时间相关的类中被大量的使用。先看一下这个类的AP:static String[]getA原创 2017-08-07 23:30:08 · 1334 阅读 · 0 评论 -
javaweb使用POI导出导出excel表格
由于工作的需要,需要用java将数据库中的数据导出为Excel表格,这就用到了Apache的POI组件,该组件让我们能够自定义创建Excel工作薄,然后导出文件即可。1.首先准备好POI的包,使用maven导入或者直接加载jar都可以。我是下载了poi-3.11-20141221.jar,poi-ooxml-3.11-20141221.jar,poi-ooxml-schemas-3.11-原创 2016-03-01 15:07:32 · 772 阅读 · 0 评论
分享