- 博客(12)
- 资源 (2)
- 收藏
- 关注
转载 类的加载与类加载器
# 类的加载概述 我们编写的“.java”扩展名的源代码文件中存储着要执行的程序逻辑,这些文件需要经过java编译器编译成“.class”文件,".class"文件中存放着编译后虚拟机指令的二进制信息。当需要用到某个类时,虚拟机将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。一个类的生命周期从类被加载、连接和初始化开始,只有在虚拟机内存中,我们的java程序才可以使用它。整个过程如下图所示:![1573872911665](类加载器.assets/15738...
2021-05-28 15:43:45 702
原创 使用PreparedStatement进行批量插入
有一个文本文件,按照某些字符进行分割,需要导入数据库。下面给出比较通用的方法。 public static void batchInsert(Connection connection, File file, String splitStr, int batchSize) throws Exception { long start = System.currentTimeMillis(); String fileName = file.getName();
2021-05-26 23:21:33 990
转载 进制与转换
参考http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.htmlhttps://www.cnblogs.com/hmy-666/p/12551063.html进制基础十进制:0,1,2,3,4,5,6,7,8,9 整数默认是十进制的二进制:0,1 在Java中以0b开头八进制:0,1,2,3,4,5,6,7 在Java中以0开头十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 在Java中以0x开头R进
2021-05-26 14:02:46 2171
转载 摒弃Date、Calendar,使用新的日期API
感谢传智播客老师深入细致的讲解为什么会出现新的日期类API将java.util.Date类束之高阁才是正确之道 -> Tim Yates在Java面世之初,标准库就引入了两种用于处理日期和时间的类,它们是java.util.Date和java.util.Calendar,而前者堪称类糟糕设计的典范,浏览API可以发现,从Java1.1开始,Date类中的所有方法就已经被弃用,Java1.1推荐采用Calendar类处理日期和时间,但是这个类同样存在不少问题。对于日期的计算困难问题.毫秒值与
2021-05-24 13:43:36 1000
转载 HashMap
HashMap1.HashMap简介 HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突**(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)**而存在的(“拉
2021-05-19 19:13:42 621
转载 ThreadLocal
感谢传智播客老师深入细致的讲解ThreadLocal1. ThreadLocal介绍1.1 官方介绍/** * This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread that accesses one (via its * {@code get} or {@code set} method) has its
2021-05-19 18:33:17 197
原创 volatile关键字详解
感谢传智播客老师的深入细致讲解一volatile关键字1.1. 多线程下变量的不可见性 1.1.1 概述 在多线程并发执行下,多个线程修改共享的成员变量,会出现一个线程修改了共享变量的值后,另一个线程不能直接看到该线程修改后的变量的最新值。 1.1.2 案例演示 public class MyThread extends Thread { // 定义成员变量 private boolean flag = false ; public boolean...
2021-05-14 17:17:47 126
原创 数据结构和算法-散列表
散列表又叫哈希表,是根据键(KEY)直接访问在内存存储位置的数据结构,由数组或者链表演化而来。一般需要对KEY进行运算得到一个数字,再映射到数据或者链表的某个位置,如此可以在时间复杂度为O(1)的情况下对数据进行访问。对KEY进行运算的函数一般称为散列函数(hash),它一般要满足几个基本的需求:散列函数计算得到的散列值必须是大于等于0的正整数,因为此值要作为数组的下标; 如果key1==key2,那么经过hash后得到的hash值也必须相同; 如果key1!=key2,那么经过hash后得到的
2021-05-11 11:54:09 118
原创 Java安全(JCA/JSSE):SSL/TLS
基本概念 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议。这种协议在WEB上获得了广泛的应用。 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS 1.0与SSL 3.0的差别非常微小。基本原理先非对称加密传递对称加密所要用的钥匙,然后双方用该钥匙对称加密和解密往来的数据。工作过程浏览器向服务器发出请求,询问对方支持的对
2021-05-10 11:37:27 268
原创 Java安全(JCA/JSSE):数字证书
数字证书包含了公钥,签发信息等。存储数字证书的地方叫KeyStore,有三种类型(私钥证书PrivateKeyEntry、密钥证书SecretKeyEntry、受信证书TrustedCertificateEntry)。可以使用keytool查看、创建、导入导出等。KeyStore存储多个私钥和其附带的数字证书 存储信任的第三方数字证书KeyStore中的每一个私钥和信任的第三方数字证书用一个alias进行标识Keytool产生私钥与导入第三方证书导出证书与生成CSR(Certific
2021-05-10 10:54:26 524
原创 Java安全(JCA/JSSE):非对称加密
非对称加密也称为公钥加密。速度慢、加密和解密的钥匙不相同,某一个人持有私钥,任何人都可以知道公钥。基本步骤: 得到keyPairGenerator的实例对象,并调用其generateKeyPair()方法创建KeyPair对象。 调用KeyPair对象的getPrivate和getPublic方法,分别得到PrivateKey对象和PublicKey对象。 得到Cipher的实例对象,并调用其init()方法指定PrivateKey对象或PublicKey对象,并指定要进行加密、还是进行解密操作。 调用
2021-05-10 10:19:20 192
原创 Java的编码与解码
编码与解码感谢黑马程序员老师深入细致的讲解什么是编码与解码电脑是由电路板组成,电路板里面集成了无数的电阻和电容, 交流电经过电容的时候,电压比较低 记为低电平 ,用0表示,交流电流过电阻的时候,电压比较高,记为高电平,用1来表示; 所以每一个1 和0 在计算机中被称为 位,也就是bit位。然而,如果使用一个位来表示计算机中的最小存储单元, 那么这个存储单元只能存储0或者1,存储的范围太小了,所以规定用8个bit位为一组 来表示 计算机的最小存储单元-byte 字节。 8个位 每个位上能存储0或者
2021-05-06 17:14:39 338
SQL组装工具类,轻松应对复杂查询条件的组装
2019-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人