- 博客(262)
- 资源 (23)
- 收藏
- 关注
转载 JVM类加载机制
从类被加载到虚拟机内存中开始,到卸载出内存为止,类的生命周期包括 加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)7个阶段其中验证、准备和解析三部分称为连接,在Java语言中,类型的加载和连接过程都是在程序运行期间完成的(Java可以动态扩展
2016-05-17 18:32:50 252
转载 缓存淘汰算法--LRU算法
原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 新数据插入到链表头部; 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 当链表满的时候,将链表尾部的数据丢弃。分析【命中率】 当存在热点数据时
2016-05-17 15:09:06 938
转载 JVM堆内存和常用参数
堆内存 堆大小 = 新生代 + 老年代。 默认的,新生代 ( Young ) 与老年代 ( Old ) 的比例的值为 1:2 ( 该值可以通过参数 –XX:NewRatio 来指定 )。即:新生代 ( Young ) = 1/3 的堆空间大小。老年代 ( Old ) = 2/3 的堆空间大小。其中,新生代 ( Young ) 被细分为 Eden 和 两个 Survivor 区域,这两个 Surv
2016-05-17 12:40:07 637
转载 Java Annotation
注解意思就是提供除了程序本身逻辑外的额外的数据信息。Annotation对于标注的代码没有直接的影响,它不可以直接与标注的代码产生交互,但其他组件可以使用这些信息。Annotation信息可以被编译进class文件,也可以保留在Java 虚拟机中,从而在运行时可以获取。甚至对于Annotation本身也可以加Annotation。哪些对象可以加Annotation类,方法,变量,参数,包内置的Ann
2016-05-17 11:50:29 296
转载 dubbo-admin管理平台搭建
一、前言dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。二、下载与配置打包dubbo-admin的下载,可自行到官网下载:https://github.com/alibaba/dubbo 当然,这里小宝鸽也上传到
2016-05-17 09:56:19 711 1
转载 Zookeeper注册中心的搭建
一、Zookeeper的介绍Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。之所以把本文归类为Dubbo是因为,博主关于Dubbo的学习笔记都是以Zookeeper作为注册中心的。Zookeeper作
2016-05-17 09:50:03 399
转载 Spring 事务属性
Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概念就是事务
2016-05-17 08:56:07 321
原创 ConcurrentHashMap封装的红黑树操作
红黑树操作封装在TreeBin的构造函数中了:TreeBin(TreeNode<K,V> b) { super(TREEBIN, null, null, null); this.first = b; TreeNode<K,V> r = null; for (TreeNode<K,V> x = b, next; x != null; x = next) {
2016-05-16 10:42:27 754
转载 ConcurrentHashMap Java 8源码分析
涉及到的数据结构1.8 版本的 ConcurrentHashMap 不再采用 Segment 实现,而是改用 Node,Node 是一个链表的结构,每个节点可以引用到下一个节点(next):/** * The array of bins. Lazily initialized upon first insertion. * Size is always a power of two. Acces
2016-05-16 00:01:04 3530 1
原创 HashMap根据value排序
思路先转化成list,然后用Collections.sort(),参数中要重写public int compare(Object o1, Object o2);代码package cn.mitsuhide.Algorithm.basic.sort;import java.util.*;/** * Created by zly on 2016/5/15. * 学习如何排序HashMapSort
2016-05-15 21:10:50 587
转载 idea每次编译设置工程的默认jdk版本1.5问题
出现这样的原因应该是Maven插件的默认配置有问题。解决方法是在”pom.xml”里加入如下代码:<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target></properties>然后按”Ctrl+Shift+A
2016-05-15 21:08:25 20319 6
转载 洗牌算法:随机打乱一个数组的顺序
给定一个数组,要求把数组内元素的顺序随机打乱,然后输出,主要是要保证效率。这其实是个洗牌算法,首先从所有元素中随机选取一个与第一个元素进行交换,然后在第二个之后选择一个元素与第二个交换,直到最后一个元素。这样能确保每个元素在每个位置的概率都是1/n。当时面Vmware的时候,面试官说的是给出长度100的数组,然后打乱。 一开始说的是随机数生成100次,面试官说还有没有更好的算法。 然后说 先在
2016-05-15 19:13:31 5395
原创 StringBuffer扩容
扩容策略(2*n + 2) StringBuffer在内部维护一个字符数组,当你使用缺省的构造函数来创建StringBuffer对象的时候,因为没有设置初始化字符长度,StringBuffer的容量被初始化为16个字符,也就是说缺省容量就是16个字符。 当StringBuffer达到最大容量的时候,它会将自身容量增加到当前的2倍再加2,也就是(2旧值+2)。 如果你使用缺省
2016-05-15 17:09:00 3184
转载 反转链表
思路从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,最后将第一个节点挪到新表的表尾 代码ActList* ReverseList3(ActList* head){ ActList* p; ActList* q; p=head->next; while(p->next!=NULL){ q=p->next; p
2016-05-15 16:56:47 316
转载 为什么MyISAM是表锁
MyISAM和InnoDB是MySQL两种最常用的存储引擎,最近几次面试都有问到区别,感觉答得不好,今天专门抽时间研究下。设计目标InnoDB设计目标是处理大容量的数据,而MyISAM追求的是性能,两者产生的差异也是基于这点。 InnoDB是MySQL的默认存储引擎。事务处理InnoDB支持事务和外键,MyISAM不支持。MyISAM强调的是性能,InnoDB支持的功能更加完整。InnoDB支持事务
2016-05-15 16:33:28 5605 8
原创 Java 程序中执行update返回结果
HibernateHibernate中execute、executeQuery和executeupdate之间的区别 Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。 方法executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多
2016-05-15 14:24:27 21443
转载 Spring 双亲容器
应用场景Spring中父子容器的实现实例Spring的父子容器可以通过ConfigurableApplicationContext或ConfigurableBeanFactory来实现。这两个接口中分别有setParent及setParentBeanFactory方法,可以与当前的子容器进行父子容器关联。这个时候子容器就可以引用父容器中的bean,但是父容器是不能够引用子容器中的bean的,并且各个
2016-05-15 11:18:17 3918 2
原创 Spring AOP源码分析(拦截器调用的实现)
在Spring AOP通过JDK或者Cglib的方式生成代理对象的时候,相关的拦截器已经配置到代理对象中去了,拦截器在代理对象中的作用是通过对这些方法的回调完成的。JDKDynamicAopProxy的invoke拦截@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable
2016-05-14 14:24:59 10498
转载 Spring MVC教程
导入包用的idea,maven中配置pom.xml<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version></dependency><dependency> <grou
2016-05-13 12:08:00 572
原创 IOC容器其他相关特性设计与实现
ApplicationContext和Bean初始化、销毁 启动过程在AbstractApplicationContext中 准备过程在prepareBeanFactory方法,为容器配置了ClassLoader、PropertyEditor和BeanPostProcessorprotected void prepareBeanFactory(ConfigurableListableBeanFa
2016-05-12 23:35:40 689
原创 Spring IOC(依赖注入,getBean)
入口DefaultListableBeanFactory的getBean类继承图流程总体流程 DefaultListableBeanFactory的getBean、doGetBeanpublic <T> T getBean(String name, Class<T> requiredType, Object... args) throws BeansException { return d
2016-05-12 12:51:17 10376
转载 Spring 中的 FactoryBean
FactoryBean(通常情况下,bean无须自己实现工厂模式,Spring容器担任工厂 角色;但少数情况下,容器中的bean本身就是工厂,其作用是产生其它bean实例),作用是产生其他bean实例。通常情况下,这种bean没有什么特 别的要求,仅需要提供一个工厂方法,该方法用来返回其他bean实例。由工厂bean产生的其他bean实例,不再由Spring容器产生,因此与普通 bean的配置不同,
2016-05-12 08:58:40 384
原创 BeanDefinition在IOC容器中的注册
注册过程概览注册存放位置HashMap//BeanName,BeanDefinitionprivate final Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>(256);注册过程首先需要完成Resource的定位和载入(前文) 假设目前执行到XmlBe
2016-05-11 23:24:48 2224 1
原创 Spring 事务
支持的事务策略全局事务和局部事务全局事务由应用服务器管理,需要底层服务器的JTA支持局部事务和底层所采用的持久化技术有关,采用JDBC持久化技术时,需要Connection对象操作事务;采用Hibernate时,需要Session操作事务全局事务可以跨多个事务性资源(关系型数据库和消息队列);使用局部事务,应用服务器不需要参加事务管理,不保证跨多个事务性资源的正确性。大部分应用都使用单一的事务源。
2016-05-09 21:40:05 307
原创 Spring AOP源码分析(生成代理对象)
AOP基本概述Advice(通知)BeforeAdvicepackage org.springframework.aop;import java.lang.reflect.Method;public interface MethodBeforeAdvice extends BeforeAdvice { void before(Method method, Object[] args, Obje
2016-05-08 23:36:55 3809 1
转载 SQL 索引最左前缀原理
表结构和索引列假设数据库中表是这样的: 我们只考虑一张表employees.titles: 索引是(emp_no,title,from_date)SHOW INDEX FROM employees.titles;+--------+------------+----------+--------------+-------------+-----------+-------------+---
2016-05-06 13:42:51 11659
原创 银联
关键知识点jsp作用域通信对象request session applicationjava文件中能有多个类吗可以,但是public的类只能有一个,必须和文件名一样垃圾回收能用程序控制吗应该是不能,当时想到的System.gc(),这里附上解释: 其实这个gc()函数的作用只是提醒虚拟机:程序员希望进行一次垃圾回收。但是它不能保证垃圾回收一定会进行,而且具体什么时候进行是取决于具
2016-05-05 20:10:45 465
原创 Spring IOC (Bean的载入和注册)
本文以FileSystemXmlApplicationContext为例说明FileSystemXmlApplicationContext继承关系:FileSystemXmlApplicationContext AbstractXmlApplicationContextAbstractRefreshableConfigApplicationContextAbstractRefreshableAppl
2016-05-03 14:11:25 1781 2
原创 Spring IOC(整体流程)
IOC容器基本分成BeanFactory和ApplicationContext两类 BeanFactory是基本,ApplicationContext多用在框架 继承结构如图: BeanFactory接口方法/** 根据bean的名字获取Bean*/Object getBean(String name) throws BeansException;/** 根据bean的名字获取Bean
2016-05-03 00:07:23 6032 1
原创 垃圾收集器与内存分配策略
垃圾回收主要针对堆区程序计数器,本地方法栈,虚拟机栈是随着线程生死的,在线程结束之后内存就会被回收了,所以不需要特殊的垃圾收集。 一个栈帧,存的局部变量表在类结构确定之后就确定了(编译期已知)。 栈帧在方法结束或线程结束之后就内存回收了。 而堆区的内存分配和回收全是动态的,所以需要有一个收集策略。如何判断对象已死1、引用计数 有一个引用指向这个对象,引用加一。减少一个引用指向这个对象,引用减
2016-04-30 10:53:17 3619
原创 Java内存区域与内存溢出异常
《深入理解Java虚拟机》第二章运行时数据区域 1、程序计数器 当前线程正在执行的字节码的行号指示器 字节码解释器工作时是改变这个计数器的值来选择下一条需要执行的字节码指令,分支、跳转、循环、异常处理、线程恢复等功能都需要依赖这个指示器。 任何时刻,只会有一个线程在执行,(多核处理器其实就是一个内核,通过轮换处理器时间来实现)。为了在线程切换后回到正确的位置,需要一个行号指示器,各个线程之间
2016-04-29 22:25:53 494
转载 MapReduce\Tez\Storm\Spark四个框架的异同
1) MapReduce:是一种离线计算框架,将一个算法抽象成Map和Reduce两个阶段进行处理,非常适合数据密集型计算。2) Spark:MapReduce计算框架不适合迭代计算和交互式计算,MapReduce是一种磁盘计算框架,而Spark则是一种内存计算框架,它将数据尽可能放到内存中以提高迭代应用和交互式应用的计算效率。3) Storm:MapReduce也不适合进行流式计算、实时分析,比如
2016-04-28 16:56:36 4814
原创 Hadoop框架初学
问题的产生主要是为了解决并行计算和分布式存储问题,因为一台计算机的处理能力有限,所以想着把一个很大的计算任务分成很多小任务,分发给各个机器。这些机器需要共享一个分布式文件系统,才能把结果写入文件。同时,目前的文件,硬盘都非常大,但是访问的带宽却跟不上容量的速度。 这样,就想这把一个大文件拆成很多小文件,分别存储在不同机器上,这样带宽就是所有机器的带宽加和,提高了访问速度。我理解的是这样,可能有误。
2016-04-28 16:07:16 529
原创 Mysql cluster初学
Mysql cluster 总览MySQL cluster中有三种节点: 管理节点、数据节点和SQL节点。 群集中的某计算机可能是某一种节点,也可能是两种或三种节点的集合。管理节点(也可以称管理服务器) 主要负责管理数据节点和SQL节点,还有群集配置文件和群集日志文件。它监控其他节点的工作状态,能够启动、关闭或重启某个节点。其他节点从管理节点检索配置数据,当数据节点有新事件时就把事件信息发送
2016-04-26 23:14:34 634
转载 抽象类和接口异同
接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。 人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它. 所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但
2016-04-26 09:39:08 1562
原创 完美世界笔试题
算法编程 思路dp算法,但是题目需要多组输入,所以动归不是关键啦 题目的样例有误导性,没有负数啊。。。。 还有,输出最长数组就行了,不用输出一个数字表示长度代码第一题,88%package Alibaba;import java.util.ArrayList;import java.util.Scanner;import java.util.regex.Matcher;import j
2016-04-25 22:01:31 3689
原创 右线性文法
优酷笔试题思路用栈实现: 1、在输入1*0*0*1*这样的,#入栈 2、在输入(,|,,直接入栈。在输入 |时候需要判断,前一个必须是# 3、在输入)时候弹出栈,把(。。。)之间的全部弹出,()中应该是#|#|#|#|#这种间隔状的,出栈之后把#入栈。 4、在输入不为上面几种情况时,判断不符合该文法。代码package third;import java.util.Stack;import
2016-04-24 21:29:06 5554
原创 优酷 Java笔试题(摘要)
优酷土豆package com.java;class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I am in A class"); } static { System.out.println(
2016-04-23 22:43:55 1202
原创 求数组最大等差数列
问题(优酷笔试题)求一个数组的一些值,使这些值满足等差数列。 注意:数组可以选出来的值不一定按照原有顺序。 比如:1,2,3,7,5,4,6,12 最长等差为:1,2,3,4,5,6,7 返回7思路O(n*n)解法: 1、快速排序 nlogn 2、dp算法dp[i][j]: 以A[i]A[j]开始的数列的长度(数列的前两项)dp[i][j]的子结构: dp[i][j]=
2016-04-23 22:15:54 2449
足球俱乐部管理程序企业版
2021-12-18
北邮_大三下_数据库实验三_Sybase版本
2021-12-18
北邮_大三下_现代交换原理_实验一_时间表调度实验报告
2021-12-18
分布式温控系统,北邮软件工程作业,主控机,有运行效果
2021-12-18
北邮大三下数据库实验二实验报告sybase版本
2013-04-23
北邮计算机网络数据链路层实验滑动窗口协议的设计与实现——选择重传协议
2012-11-29
VHDL交通灯文档
2012-11-25
VHDL交通灯
2012-11-25
哈夫曼编码-文件压缩
2012-11-25
java web 整合开发 刘斌 程序书源代码
2012-11-25
java web 整合开发程序书源代码
2012-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人