- 博客(235)
- 资源 (4)
- 收藏
- 关注
原创 Mysql数据库B+树索引,聚集索引和非聚集索引
索引数据结构:二叉树:单边数据增长的情况数据查询会很慢红黑树(平衡二叉树):单边数据增长会做平衡处理,有自动平衡功能,左子树和右子树相差绝对值<=1,缺点:随着数据量增加树高越来越高,查询速度也越来越慢B树:基于平衡二叉树每个节点放多个元素,高度即变矮hash索引:对索引的key进行一个hash运算就可以定位到数据的存储位置,大多数时比B+树索引更快,仅能满足“=” “in”,不支持范围查找,hash冲突问题B+树:非叶子节点放索引(冗余索引,存放每一个磁盘页的第一个元素,为了构建B+树),叶子节点
2022-05-17 16:38:33
791
原创 对象创建过程
对象创建过程:判断有没有加载对象 分配内存空间。分配方式:指针碰撞,指针列表。遇到线程安全问题怎么办?CAS+失败重试,TLAB(本地线程分配缓冲) 初始化零值 设置对象头 执行init方法(属性赋值)Java对象布局对象头:对象自身的运行时数据( MarkWord )32位占4个字节,64位占8个字节:对象哈希码,GC分代年龄,是否偏向锁,锁标志位 Class Pointer类型指针: 数组长度实例数据 对象对齐填充(对象寻址最优的方式)指针压缩禁止指针压缩(默认开启):
2022-04-26 16:52:32
225
原创 Java类加载机制与JVM虚拟机内存模型
JVM虚拟机内存模型每个线程私有的区域:虚拟机栈,本地方法栈,程序计数器(PC寄存器) 程序计数器:程序正在运行或马上要运行代码的内存位置。内存位置:JVM汇编里每一行前面的数字 本地方法栈的本地方法:用c/c++实现的dll文件 一个user对象,方法区存放的是地址,堆区存放值 虚拟机栈里的局部变量表(slot槽,类似数组),存放程序里的局部变量 操作数栈:程序在运行过程中操作数(变量对应的值)做运算操作的一块临时中转存放空间 虚拟机栈:每一个方法从调用开始至执行完成的过程,都对应着一个栈
2022-04-25 18:14:53
320
1
原创 进程与线程
进程与线程进程是系统分配资源的基本单位,线程是调度cpu的基本单位,一个进程至少包含一个执行线程,线程寄生在进程之中。每个线程都有一个程序计数器(记录要执行的下一条指令),一组寄存器(保存当前线程的的工作变量),堆栈(记录执行历史,其中每一帧保存了一个已经调用但未返回的过程)线程分为两类用户级线程(ULT),cpu权限级别ring3普通用户可操作 内核级线程(KLT),cpu权限级别ring0才可操作用户空间划分内核空间,KLT系统核心跑在内核空间,ri...
2022-04-20 18:07:28
784
原创 ConcurrentHashMap
ConcurrentHashMap分段锁,大哈希表套小哈希表,减少竞争冲突 put操作时上锁,每次put时强制tryLock()加锁 Segment extends ReentrantLock(可重入锁,可以手动加锁和解锁),每个segment占一把锁
2022-04-20 11:57:22
235
原创 HashMap在JDK1.7和1.8里的区别是什么
HashMapget和put的时间复杂度为O(1) 为了解决hash冲突,HashMap引入了链表 计算数组下标并不是用取模,而是用位运算 hashcode&(length-1),位运算效率>取模,因为位运算是最接近于机器所能识别的运算 hashmap默认扩容因子0.75,最大容量2的30次方,初始容量2的4次方即16 默认初始容量16,如果自定义初始容量必须是2的指数幂,如果不是,则强行转换为大于这个数的2的最小指数幂。 为什么要转换成2的指数幂?减少哈希碰撞,为了.
2022-04-16 21:46:26
670
原创 常用sql优化方法,索引失效场景,explain执行计划
常用sql优化方法禁止使用select *,只查询出需要用到的字段 尽量减少表关联 合理使用索引 联合索引遵循最左前缀法 使用执行计划explain查看sql执行信息是否走索引 避免回表(覆盖索引) 分页查询优化索引失效场景...
2022-04-12 19:18:05
671
原创 jQuery九类选择器(三)
广东 湖南 湖北 //1)查找所有可用的input元素的个数 //alert( $("input:enabled").size() ); //2)查找所有不可用的input元素的个数 //alert( $("input:disabled").size() ); //3)查找所有选中的复选框元素的个数 /
2018-01-11 22:58:33
393
原创 Query九类选择器(二)
Option Button //1)查找所有input元素的个数 //alert( $("input").size() );//10,找input标签 //alert( $(":input").size() );//13,找input标签和select/textarea/button //2)查找所有文本框的个数 //ale
2018-01-11 22:56:25
418
原创 jQuery九类选择器(一)
test3 body { color: lightseagreen; text-align: center; } .myClass { font-size: 44px; color: blue } div1 div2 divClass
2018-01-11 22:51:51
286
原创 javascript对象对应的ajax对象
//js对象转为ajax对象var divVar=document.getElementById("butID");var ajaxDiv=$(divVar);alert(ajaxDiv.val());//ajax对象转为js对象var butV=$("#divID");var ele=butV.get(0);alert(ele.innerHTML);
2018-01-10 22:09:29
347
原创 使用ajax+json+struts实现省份下拉框二级联动
前台jsp页面My JSP 'provincecityarea.jsp' starting page 选择省份 河南 上海 杭州 选择城市 选择区域 <!-- 省份>城市 --> document.getElementById("provinceID").onchange = function()
2017-12-24 19:15:19
419
原创 json初识
My JSP 'MyJson.jsp' starting page var json = { id : 1, name : "ss", age : 25 }; var jsonArray = [ { id : 1, name : "ss", age : 25 }, { id : 2, name : "saa", age : 25 },
2017-12-24 14:27:02
279
原创 使用Ajax实现对验证码验证提示(struts+jsp+Ajax)
image.jsp:验证码图片生成<%! public Color getColor(){ Random random = new Random(); int r = random.nextInt(256);//0-255 int g = random.nextInt(256); int b = random.nextInt(256); return new Colo
2017-12-24 11:52:20
426
原创 使用Ajax实现登录验证
get提交方式:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%> My JSP 'loginAjax.jsp' starting page body { text-align: center
2017-12-22 21:24:09
5826
原创 登录表单JS静态验证
My JSP 'login3.jsp' starting page function checkForm(){var name=document.getElementById("username");var pwd=document.getElementById("pwd");if(name.value==''){document.getElementById("usernamet
2017-10-16 16:54:53
451
原创 DBCP与C3P0
public class MyDbcp { private Connection conn; private PreparedStatement ps; private ResultSet rs; public static void main(String[] args) { MyDbcp dbcp = new MyDbcp(); dbcp.testDbcp(); dbcp
2017-10-10 16:57:37
336
原创 获取数据自动插入列
//获取数据自动插入列public class getAutoIncrement { private Connection conn; private PreparedStatement ps; private ResultSet rs; public static void main(String[] args) throws SQLException { getAutoIncr
2017-10-07 09:46:08
334
原创 Jdbc通用连接类
public class DbUtil2 { private static String url = null; private static String user = null; private static String password = null; private static String driverClass = null; static { try { Pr
2017-09-30 23:31:25
357
原创 存储过程的使用
SHOW TABLES;SELECT *FROM USER;--CREATE TABLE emp(id INT PRIMARY KEY,NAME VARCHAR(10),pwd VARCHAR(10),deptname VARCHAR(10))DROP TABLE empSELECT * FROM emp;-- 创建存储过程(输入参数)INSERT INTO emp VA
2017-09-30 12:15:11
298
原创 线程插入
public class ThreadJoin { public static void main(String[] args) { Mum m = new Mum(); m.start(); }}class Mum extends Thread { public void run() { System.out.println("洗菜"); System.out.pri
2017-09-27 21:15:15
381
原创 守护线程
//只剩下一个线程,守护线程也消失//守护线程:有一个线程随主程序存在而存在,随主程序消失而消失public class ThreadDemo extends Thread { private String name; public ThreadDemo(String name) { super(); this.name = name; } public void run(
2017-09-27 21:07:34
258
原创 线程的停止
//线程停止/*线程的停止: 1. 停止一个线程 我们一般都会通过一个变量去控制的。 2. 如果需要停止一个处于等待状态下的线程,那么我们需要通过变量配合notify方法或者interrupt()来使用。*/public class ThreadDemo5 extends Thread { boolean flag = true; public ThreadDemo5(String
2017-09-27 20:22:09
284
原创 生产者与消费者问题
//产品类class Product { String name; double price; boolean flag = false;// 产品是否生产完毕的标识,默认情况是没有生产完成。}// 生产者class Producer extends Thread { Product p;// 产品 public Producer(Product p) { super()
2017-09-27 19:08:14
306
原创 线程安全问题(使用同步函数)
class SaleTicket2 extends Thread { static int num = 5000;// 票数,静态共享变量 static Object o = new Object();// 同步对象 public SaleTicket2(String name) { // 获取名字 super(name); } // 重写run方法 // 同步函数 pu
2017-09-26 22:52:10
293
1
原创 线程安全问题(使用同步代码块)
class SaleTicket extends Thread { static int num = 50;// 票数,静态共享变量 static Object o = new Object();// 同步对象 public SaleTicket(String name) { // 获取名字 super(name); } // 重写run方法 public void run
2017-09-26 20:50:26
353
原创 封装jdbc的crud操作
//封装crud操作public class BaseDao { private final static String driver = "oracle.jdbc.driver.OracleDriver"; private final static String url = "jdbc:oracle:thin:localhost:1521:orcl"; private final sta
2017-09-25 20:13:12
907
原创 jdbc处理事务
public class BankDao extends BaseDao { public static void main(String[] args) throws SQLException { BankDao bd = new BankDao(); bd.zz(); } private void zz() throws SQLException { // TODO Aut
2017-09-25 20:09:17
645
原创 用action执行方法
用dom4j解析xml标签,并将标签属性与文本内容添加进集合,创建方法,传入action查找对应的id,从何获取类路径与方法,利用反射执行方法FrameUtil.javapublic class FrameUtil { List list = new ArrayList(); public static void main(String[] args) throws Exce
2017-09-18 18:12:02
577
原创 使用dom4j解析xml标签,将标签属性与文本内容添加进集合
studentInfo.xml 崔卫兵 PC学院 62354666 男,1982年生,硕士,现就读于北京邮电大学 张洪泽 PC学院 62358888 男,1987年生,硕士,现就读于中国农业大学 映射Student..javapublic class Student { private String id; private
2017-09-18 18:06:34
1789
原创 操作jdbc利用集合和反射对数据表中的记录进行遍历
private static List test8(String tabname, String clname) throws Exception { Class cl = Class.forName(clname); Connection conn = getConnection(); String sql = "select *from " + tabname; Lis
2017-09-13 15:50:28
339
原创 反射获取类属性和方法的调用
package io.stream;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;public class ReflectTest { public static
2017-09-12 11:05:37
260
原创 字节数组流,文件流,数据流,转换流
public class Demo011 { public static void main(String[] args) { Demo011 de = new Demo011(); de.byteArrayInputStream();// 字节数组输入流 de.fileInputStream();// 文件输入流 de.fileInputStream2();// 文件输入流,读
2017-09-11 20:41:34
4825
原创 字符输出流,转换流,对象输入/输出流
private static void objectInputStream() { // TODO Auto-generated method stub try { FileInputStream fis=new FileInputStream("c:\\hello.txt"); ObjectInputStream ois=new ObjectInputStream(fis);
2017-09-11 19:21:54
395
原创 用字符流读取文件的几种方法
public class Demo2 { public static void main(String[] args) { //fileReader1();//创建字符数组,将文件字符流读入数组,用for each循环进行遍历输出 //fileReader2();//读取文件字符流挨个获取输出 //fileReader3();//创建字符数组把字符读进数组,获取长度添加进字符串缓冲区
2017-09-11 18:38:14
2163
原创 利用jdbc对数据表进行分页,操作存储过程(有参与无参,返回游标),函数等
select * from deptselect * from (select e.empno,e.ename,rownum r from (select empno,ename from emp order by empno) e where rownum>=20)where r<=30--无返回值的存储过程create or replace procedure proc_ins_dept
2017-09-07 21:04:02
530
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人