自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 动态代理

https://blog.csdn.net/luanlouis/article/details/24589193

2018-08-17 14:48:27 249

原创 sql应用

1.查询每门课都大于80分的学生姓名 方式一:SELECT nameFROM testGROUP BY nameHAVING MIN(score) > 80方式二:SELECT DISTINCT nameFROM testWHERE name NOT IN(SELECT DISTINCT name FROM test ...

2018-07-10 22:59:27 1016

原创 sql高级子查询相关应用

下面对高级子查询做简要总结:包括多列子查询、FROM子句中使用子查询、使用EXISTS和NOT EXISTS操作符、使用子查询更新和删除数据、使用WITH子句1.多列子查询 1.查询与141号或174号员工的manger_id和department_id相同的其他员工的employee_id,manger_id,department_id(1)方式一:SELECT em...

2018-07-10 22:25:00 519

原创 sql实例应用

前面对基本的sql查询语句做了一个简单的总结,下面结合网上的常用查询做一个实例。1.查询每个月倒数第2天入职的员工信息 2.查询出last_name为‘Chen’的manager信息 3.查询平均工资高于8000的部门id和它的平均工资 4.查询工资最低的员工信息:last_name,salary 5.查询平均工资最低的部门信息 6.查询平均工资最低的部门信息和该部门的平...

2018-07-10 20:45:30 5213 1

原创 sql基础语句

总结sql基本知识点,并结合实例,一步步复杂化1.检索数据(SELECT)查询所有员工的薪水(简单的检索语句)SELECT salary FROM employees;2.限制检索结果(LIMIT)在1的基础上返回从行10开始的20行薪水数据(返回指定的行,不是返回所有行) SELECT salary FROM employees LIMIT 10,20;3...

2018-07-10 10:31:13 312

原创 类加载器

在类加载过程中,第一步是将二进制字节流加载到jvm方法区中,从外部加载二进制字节流到jvm中,需要使用到加载器。加载器可以使用自定义加载器,也可以使用jvm提供的加载器。1.为何要使用类加载器类加载器的作用是从外部加载二进制字节流到jvm方法区,从外部加载东西到内部,自然需要传输工具。(懒加载)类加载是在程序运行期间进行的,属于懒加载,也就是jvm需要使用到某个类时,才会对其进...

2018-06-27 22:42:38 171

原创 类加载过程

类加载过程包括加载、验证、准备、解析、初始化,下面将对这5个阶段进行详细的学习。1.加载加载是将二进制字节流加载到jvm方法区中,并生成一个Class对象,作为类的访问入口,在这一阶段主要完成的工作如下:通过类的全限定名获取类的二进制字节流 (没有限定二进制字节流就是class文件,所以可以通过多种方式获取二进制字节流,如文件,网络,数据库等)将字节流所代表的静态存储结构...

2018-06-26 22:06:23 674

原创 类加载时机

jvm运行时通过将需要的class文件加载到方法区中,并对其进行验证、准备、解析和初始化,最终将二进制字节流转换成jvm方法区中的java类型。jvm加载class文件与其他语言加载二进制文件不一样,jvm加载是懒加载,只有在需要使用到该class文件时才会进行加载。既然如此,class文件该何时加载,加载过程中需要完成的工作有哪些?1.类生命周期 以上步骤并非严格按照顺序执行,...

2018-06-26 18:25:15 283

原创 class文件结构

java语言具有平台无关性,因为有jvm的支持,编译过后的java代码可以在任意平台上运行。java语言经编译后变成class文件,class文件在jvm上运行。现在jvm添加对其他语言的支持,其他语言编译成class文件也可以在jvm上运行,所以,jvm不仅提供了平台无关性,还提供了语言无关性。在jvm规范中定义了class文件格式,所有能够在jvm上运行的class文件必须要满足jvm定...

2018-06-25 10:11:00 1096

原创 内存分配和回收策略

jvm提供的内存管理主要包括内存分配和内存回收,内存分配主要是在堆上分配,jvm将堆区划分为新生代:Eden区,2个survivor区,老年代,创建的对象主要分配在Eden区,也有大对象、长期存活的对象分配到老年代中。对象的分配与垃圾收集器组合以及jvm中设置的参数有关。下面将介绍几种常用的内存分配策略。1.对象优先在Eden区分配一般情况下,创建的新对象会直接分配到新生代的Ede...

2018-06-22 10:08:16 375

原创 垃圾收集器

hotspot虚拟机中提供了多款垃圾收集器,每款收集器有它的特点以及适用范围,开发人员可根据对象生命周期特点,内存使用情况等使用参数选择合适的垃圾收集器。下面给出hotspot中所有虚拟机的结构图。这些虚拟机有些用于新生代垃圾手机,有些用于老年代垃圾手机,新生代垃圾收集器采用的都是复制算法,老年代垃圾手机采用的有标记-清除算法、标记-整理算法。 下面对这几种收集器做一个简单的总结...

2018-06-15 18:59:36 1012

原创 LCS

给定俩个序列X,Y,求出俩序列中最长公共子序列,子序列可以是不连续的。拿到这样的问题,如果使用暴力法,是枚举出X所有的子序列,判断子序列是否为Y的子序列,然后再从所有的子序列中找出长度最长的。这样做的话,时间复杂度为O(2^N),时间复杂度太高。在这种通过暴力法解决时,时间复杂度过高的情况下,我们可以考虑动态规划法。序列: X={x1,x2,,,xn} Y={y1,y2,,,ym}...

2018-06-14 18:06:03 1011

原创 垃圾收集算法

jvm中的垃圾收集算法有标记-清除法,复制法、标记整理法以及分代法,下面对这四种垃圾收集算法进行一个简单的描述。1.标记-清除法标记所有需要被回收的对象,然后再统一清除被标记的对象。其标记过程采用的是可达性分析算法。 不足:效率 标记和清除俩个过程的效率都不高,清除过程是将被标记的对象一个一个进行清除。 空间 由于被标记的对象分布在内存的各个地方,清除之后会产生大量的...

2018-06-13 12:24:39 437

原创 垃圾收集相关知识

在c或c++中,由开发人员创建对象并且手动释放对象。在java中,程序员不需要自己去释放对象,由jvm帮助我们去释放对象。jvm将java内存区域划分为方法区、堆、虚拟机栈、本地方法栈、程序计数器。其中,虚拟机栈、本地方法栈、程序计数器是随线程而生,随线程而灭。栈中所需的内存在类结构确定下来的时候就已经确定,程序计数器保存的是下一条指令的地址,所以只占一个内存空间。 而堆、方法区是线...

2018-06-13 11:25:25 160

原创 LIS模型

之前了解过动态规划中背包模型,今天总结一下动态规划中常用的LIS模型(最长递增子序列),许多动态规划算法题是由其变形可解。最长递增子序列,有时间复杂度为o(n^2)解法,有优化后的O(nlogn)解法1.最长递增子序列问题描述:给定序列,求出序列中最长递增子序列分析:要求长度为i的序列{a1,a2,…..ai}的最长递增子序列,需要先求出长度为i-1的序列中以各元素结尾的最长递...

2018-06-11 18:30:16 657

原创 对象创建、布局、访问相关内容

在了解java内存区域以后,需要进一步了解对象是如何在堆中创建,分配内存以及如何进行定位访问。由于不同虚拟机对对象的操作存在差别,这里选取常用虚拟机hotspot中对象进行分析。1.对象如何创建?在语言层面上,对象的创建常见方式是new关键字进行创建,(当然,还有通过反射、反序列化、克隆),那么在jvm内部,jvm碰到new指令以后在内部是如何操作的?jvm碰到new指令执行流...

2018-06-11 15:39:34 200

原创 java内存区域

在学习jvm之前,觉得有必要先了解一下虚拟机是个什么操作。虚拟机有很多种,有常用的vmvare,我想学习linux指令,最好安装一个linux系统,但是我又不想安装双系统,怎么办,那就在vmvare中安装linux,仿佛多了一台计算机。 c,c++编译好的程序,换到另一台计算机上运行,可能会出错,而java程序,一次编译,到处运行,这是因为jvm的无比威力。所以什么是虚拟机?...

2018-06-08 22:11:08 175

原创 动态规划-多重背包系列

本文将对背包问题中的第三类背包问题——多重背包进行描述并给出相关例题问题描述:有n件物品和一个容量为m的背包,第i件物品最多只有n[i]件可用,每件体积为w[i],每件的价值为v[i],求解将哪些物品放入背包中可使不超过背包容量并且价值最大?分析:对于第i件物品可以选0件,1件,……n[i]件状态转移方程:f(i,v) = max{f(i-1,v),f(i-1,v-k*w[i])+k*...

2018-06-06 21:01:16 251

原创 多线程-内存可见性

由于java内存模型定义了对底层数据访问的规则,线程读取写入数据都是在工作内存中进行,并在某些时候(不确定)将值刷新到主内存中。所以导致在多个线程的工作内存中的共享变量的副本值是不相同的。如果一个线程修改了共享变量值,由于没有及时将值刷新到主内存中,其他线程也无法及时获取最新值,所以出现可见性问题。1.如何保证线程安全性? 2.共享变量可见性实现原理?支持方式? 3.synchro...

2018-06-05 16:29:32 320

原创 动态规划-完全背包系列

完全背包与01背包的区别在于,01背包中所有物品要么选要不不选,完全背包是所有物品可以选任意次。完全背包与01背包很相似,可以将完全背包转换成01背包,也可以找到其状态转移方程。1.完全背包 2.完全背包变形题-最小乘车费用 3.完全背包变形题-货币系统1.完全背包问题描述:有n件物品和一个容量为m的背包,每件物品都有无限件可用,第i件物品的体积为w[i],价值是v[i...

2018-06-03 13:11:11 976

原创 多线程-内存模型

内存模型是深入了解多线程开发的基石1.多线程起源 2.内存模型基础–硬件优化 3.内存模型详细说明 4.原子性 5.有序性 6.可见性 7.先行发生规则1.多线程起源计算机运行速度快,但是存储和通信子系统速度慢,导致cpu大部分时间是在等待存储设备读写操作,此时加入多线程可以提升程序性能。 多线程共享进程变量,如何对共享变量进行操作?2.内存模型基础—硬件...

2018-06-01 18:30:21 1247 1

原创 动态规划-01背包系列题

动态规划-01背包系列题1.01背包问题解题思路 2.01背包问题实现 3.

2018-05-29 22:12:26 948

原创 动态规划前序

最近在学动态规划,做一个小总结,同时也督促自己继续做总结。1.什么是动态规划?什么样的问题适用于动态规划? 2.动态规划的特征 3.动态规划适用条件 4.常用解题步骤 5.常用模型1.什么是动态规划?什么样的问题适用于动态规划? 如果要求一个问题的最优解(最大值或最小值),而且该问题能够分解为若干个子问题,并且子问题之间存在重叠的子问题,则考虑使用动态规划。 使用递...

2018-05-29 19:52:15 211

原创 java多线程基础

最近在学java多线程,先对多线程做一个简单概要,后期再慢慢深入。下面将从以下几点展开:什么是多线程?为何要引入多线程?线程和进程之间的区别多线程中常用方法小结创建多线程的方式,Thread、Runnable俩种方式之间的区别?通过一个火车票的例子给出线程生命周期守护线程1.什么是多线程?为何要引入多线程?进程和线程之间的区别 早期计算机,由于没有操作...

2018-05-28 12:03:04 176

原创 面试

零零散散记得一点面试问题 快手一面:主要是网络,操作系统,java基础,多线程,jvm,linux基本命令,算法。 操作系统: 1.页式存储 2.将磁盘中的文件读取到内存中,会经过哪些存储结构 3.操作系统中的三级缓存 网络: 1.tcp三次握手 2.网络分层 3.tcp,udp,http区别 4.如何判断丢包,丢包算法。 5.如何控制传输的数据量大小。 6.视频通话属于t...

2018-05-25 21:22:58 188

原创 华为4.18号笔试题

import java.util.Scanner;/** * Created by ZD on 2018/4/18. */public class Main_H21 { public static void main(String[] args){ Scanner sc=new Scanner(System.in); whil...

2018-04-18 21:56:26 817

原创 4.14搜狐笔试题

import java.util.HashMap;import java.util.Scanner;public class Main_S1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextI...

2018-04-14 17:56:38 282

原创 4.10招商银行笔试编程题

1.序列找数题目描述:从非负整数序列0,1,2,….,n中给出包含其中n个数的子序列,请找出未出现在该子序列中的那个数。 输入描述:输入为n+1个非负整数,用空格分开。 其中:首个数字为非负整数序列的最大值n,后面n个数字为子序列中包含的数字。 输出描述:输出为1个数字,即未出现在子序列中的那个数。 示例: 输入: 3 3 0 1 输出: 2...

2018-04-10 21:41:42 8049 6

原创 4.8链家笔试

1.开关灯问题题目描述:在小红家里,有n组开关,触摸每个开关,可以使得一组灯泡点亮。 现在问你,使用者n组开关,最多能够使得多少个灯泡点亮? 输入:第一行一个n,表示有n组开关。 接下来n行,每行第一个整数为k,表示这个开关控制k个灯泡,接下来k个整数,表示控制的灯泡序号。 满足: 1<=n<=1000 1<=k<=1000 序号是在int范围内正整数。 ...

2018-04-10 10:02:33 371

原创 4.9京东笔试编程题

1.生成回文串题目描述: 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串。 例如”ABCBA”,”AA”,”A”是回文串,而”AAB”不是回文串。 牛牛特别喜欢回文串,他手中有一个字符串s,牛牛在思考能否从字符串中移除部分(0个或多个)字符使其变为回文串,并且牛牛认为空串不是回文串。 牛牛发现移除的方案可能有很多种,希望你来帮他计算一下一共有多少种移除方案可...

2018-04-10 09:47:59 1195

转载 八大排序算法

*概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。*我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平...

2018-03-20 17:36:28 228

转载 数据库连接池详解

很详细的一篇数据库连接池原理详解,做了部分修改这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。一.早期我们怎么进行数据库操作?1.原理:一般来说,java应用程序访问数据库的过程是:  ①装载数据库驱动程序;  ②通过jdbc建立数据库连接;  ③访问数据库,执行sql语句;  ④断开数据库连接。2.代码...

2018-03-19 15:41:36 320

原创 数据库锁详解

一篇超详细的数据库锁详解: http://blog.csdn.net/tanga842428/article/details/52748531

2018-03-17 12:27:19 391

原创 how tomcat works

推荐一本好书how tomcat works最近因为任务需要,超速地浏览了how tomcat works这本书,发现果然是本好书,虽然年代久远,但是魅力无穷。后面有时间要重新仔细阅读一遍。贴上中文翻译版: http://vdisk.weibo.com/s/srEPwdiy72Ub有大神已将可运行源码已经集成到Maven项目: https://github.com/pumadong...

2018-03-05 11:51:26 744

转载 Java研发方向如何准备技术面试

最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力。对于Java研发方向的技术面试,这里总结了一些你必须要掌握的技术知识点,考察的内容会比这里总结的多,所以如果想要有一个很不错的offer,下面的知识点需要都具备。社招考察的内容会在此基础上增加项目经验、技术实战经验、热门...

2018-03-03 12:18:11 339

原创 java开发复习知识点

刚开学,要为找实习做准备,网上浏览各种java开发博客,看了一下找工作需要系统准备的知识技能,有丢慌慌张张,怎么这么多。告诫自己不怕不怕,出来混,迟早都是要还的。知识点虽多,视重点,咱要各个击破。下面整理的是从整合了其他博客上的相关内容。Java基础String类为什么是final的。HashMap的源码,实现原理,底层结构。说说你知道的几个Java集合类:list、set、qu...

2018-03-03 12:11:36 532

原创 薪水支付案例

一直懒的更新,代码还差一部分没有测试。贴上github地址,里面包含的是整本书的前几章的代码实现。其中薪水支付案例是在salary文件夹里。https://github.com/VioletZhao/agileDevelopment.git

2017-12-22 15:44:32 1023

转载 镜像

国内开源镜像站搜狐开源镜像站 http://mirrors.sohu.com/网易开源镜像站 http://mirrors.163.com/阿里云开源镜像站 http://mirrors.aliyun.com/公云开源镜像站 http://mirrors.pubyun.com/首都在线开源镜像站 http://mirrors.yun-idc.com/linux运维派开源镜像站 http:

2017-12-13 21:45:38 989

原创 表格操作

感觉现在poi用的比jxl较多,jxl相对过时,本人在操作过程中,发现jxl不能操作doc文件,以及只适用于版本比较低的excel,郁闷。虽然没有比对jxl和poi的性能,但是对于现在的计算机性能,感觉也差不了多少(说话很不负责任)。后期要考虑转入poi阵营转载了一篇关于pio和jxl的性能对比博客: http://blog.csdn.net/Demodan/article/details/787

2017-12-12 11:49:44 239

转载 jxl和poi操作Excel

目前我所负责的系统中有POI和JXL两种方式的导出数据实现。 项目初期数据量不大一般使用JXL的方式,可以满足需求,后来在进行一些盘点,等月度出入库查询报表统计的时候出现了超过最大sheet行的错误,另外堆内存也被占满了。所以后面就紧急将部分重要功能,要导的数据量大的几个模块改造成POI的方式了。但是仍然跑的很慢,没有了解POI的另外一种实现方式,后来对POI的工具类,以及POI的导出实现做了部分修

2017-12-11 17:12:56 432

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除