- 博客(48)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
转载 JVM内存模型
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。而其他的数据依赖于每一个线程,在线程创建时创建,在线程退出时销毁。程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java 虚拟
2017-07-31 20:18:53 124
转载 ArrayList、Vector、LinkedList的区别及其优缺点?
ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下: 一、同步性 ArrayList,LinkedList是不同步的,而Vestor是同步的。所以如果不要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费的开销。但在多线程的情况下,有时候就不得不使用Vector
2017-07-30 10:08:30 282
转载 Java并发编程:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,
2017-07-29 22:00:19 141
转载 Callable和Future、FutureTask的使用
创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结果该如何实现呢?还记上一篇Executor框架结构中提到的Callable接口和Future接口吗?,是的,从Java SE 5.0开始引入了Callable和Future,通过它们构建的线程,在任务执行完成后就可以获取执行
2017-07-29 21:59:31 209
转载 理解线程池的原理
1.关于线程池线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关
2017-07-29 21:48:54 285
转载 线程池的原理及实现
1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程
2017-07-29 15:31:52 131
转载 Callable和Future、FutureTask的使用
在Java中,开启一个线程的唯一方式是,是通过Thread的start方法,并且在线程中执行的Runnable的run方法。无论是线程池还是接下来要介绍的Callable,Future还是线程池,最核心最根本的还是调用到Thread.start()–>Runnable.run(),其他的类的出现可以认为是更方便的使用Thread和Runnable,以此为核心会更容易理解Java的并发框架。
2017-07-29 15:31:16 344
转载 理解线程池的原理
1.关于线程池线程池的技术背景在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如何利用已有对象来服务就是一个需要解决的关
2017-07-29 15:29:45 433
转载 共享锁(S锁)和排它锁(X锁)
共享锁【S锁】又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。排他锁【X锁】又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再
2017-07-29 14:37:26 269
转载 阿里二面准备(Java 研发)
感觉有机会进行二面(原谅我没来由的自信,~~),准备一下。参考了牛客网上 30 多个面经帖,这是目前我能找到的几乎所有的问题。私以为如果能全部掌握,基本就能收割 offer 了。时间有限的话,针对自己的情况优先选最有可能被问到的问题来准备。有少部分内容我直接忽略了,可以参考 interview/ 目录下之前做的总结。注意:因为我并没有系统的学习多线程编程,所以并发相关的问题我只是大
2017-07-27 13:16:20 11506 4
转载 集群/分布式环境下5种session处理策略
转载自:http://blog.csdn.net/u010028869/article/details/50773174?ref=myread前言在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处理。如果不做任何处理的话,用户将出现频繁登录的现象,比如集群中存在A、B两台服务器,用户在第一次访问网站时,Nginx通过其负载均衡机制将用户请求转发到A服务器
2017-07-27 13:00:18 210
转载 集群间Session共享问题解决方案
两个基本概念的生命周期session:当新客户端发现一个HTTP请求时服务端会创建一个session.并分配一个sessionID作为服务端来客户端的识别,session对象会保存在服务端.此时session对象处天NEW STATE状态,如果调用 session.isNew()则返回true.当服务器处理完后,会将sessionID同reponse 一起传回客
2017-07-27 12:54:04 696
转载 Java HashMap工作原理及实现
1. 概述从本文你可以学习到:什么时候会使用HashMap?他有什么特点?你知道HashMap的工作原理吗?你知道get和put的原理吗?equals()和hashCode()的都有什么作用?你知道hash的实现吗?为什么要这样实现?如果HashMap的大小超过了负载因子(load factor)定义的容量,怎么办?当我们执行下面的操作时:123
2017-07-27 12:52:26 169
转载 spring 事务-使用@Transactional 注解(事务隔离级别)
先看下@Transactional可以配制那些参数及以其所代表的意义。isolation枚举org.springframework.transaction.annotation.Isolation的值事务隔离级别noRollbackForClass[]一组异常类,遇到
2017-07-27 12:52:01 467
转载 zookeeper常见面试题
zookeeper是如何保证事务的顺序一致性的zookeeper采用了递增的事务Id来标识,所有的proposal都在被提出的时候加上了zxid,zxid实际上是一个64位的数字,高32位是epoch用来标识leader是否发生改变,如果有新的leader产生出来,epoch会自增,低32位用来递增计数。当新产生proposal的时候,会依据数据库的两阶段过程,首先会向其他的server发出事
2017-07-27 12:51:20 1680
转载 深度剖析JDK动态代理机制
摘要相比于静态代理,动态代理避免了开发人员编写各个繁锁的静态代理类,只需简单地指定一组接口及目标类对象就能动态的获得代理对象。代理模式使用代理模式必须要让代理类和目标类实现相同的接口,客户端通过代理类来调用目标方法,代理类会将所有的方法调用分派到目标对象上反射执行,还可以在分派过程中添加"前置通知"和后置处理(如在调用目标方法前校验权限,在调用完目标方法后打印日志等)等功能
2017-07-25 09:34:49 216
转载 Spring AOP之动态代理原理解析
首先声明,这篇文是看马士兵老师的spring动态代理视频后写出来的。我是初学者,欢迎指正!本示例模拟的是为一个接口的实现类的每个方法执行前和执行后各加一个日志。Spring AOP就是使用了jdk的动态代理。动态代理的好处,即可以在一个类的某一个方法前后加如日志记录、权限管理和数据库事务管理等其他的业务,被代理的类本身不知道代理类,这样就可以使程序员专注于业务开发而不必去关心权限管
2017-07-25 09:34:40 367
转载 Spring AOP 实现原理
什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定
2017-07-25 09:34:32 164
转载 Spring AOP事务管理(使用切面把事务管理起来)
在《Spring Transaction 分析事务属性(事务的基本概念、配置)》基础上 1、使用基于注解的AOP事务管理 探索tx:annotation-driven标签: 标签是注解驱动的事务管理支持的核心。 标签的属性: transaction-manager:指定到现有的PlatformTransactionManager bean的引
2017-07-25 09:34:20 608
转载 面试总结——Java高级工程师(三)
面试前面也总结了一和二, 这第三篇可能更偏向于是内心的独白篇和面试技巧总结吧.....一、独白 之前也面试别人,现在轮到自己找工作,怎么说呢,每个面试官的看法不一样,面试的方式就不一样,比如我面试别人我喜欢问项目中他用到了那些,然后针对用到的技术去问一些问题,或者说对于某些场景的一些技术实现方案是我特别喜欢问的,比如当你的接口服务数据被人截包了,你如何防止数据恶
2017-07-25 09:34:07 303
转载 面试题总结——JAVA高级工程师
近期考虑换工作的问题,于是投简历面试,面试5家公司的高级Java工程师,有4家给了我offer,想着总结一下面试经验,方便最近正在寻求机会的你们一、无笔试题不知道是不是职位原因还是没遇到,面试时,都不需要做笔试题,而是填张个人信息表格,或者直接面试二、三大框架方面问题1、Spring 事务的隔离性,并说说每个隔离性的区别
2017-07-25 09:33:50 358
转载 Java并发多线程面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用
2017-07-25 09:33:42 342
转载 面试题总结 —— JAVA高级工程师
面试题总结——JAVA高级工程师近期考虑换工作的问题,于是投简历面试,面试5家公司的高级Java工程师,有4家给了我offer,想着总结一下面试经验,方便最近正在寻求机会的你们一、无笔试题不知道是不是职位原因还是没遇到,面试时,都不需要做笔试题,而是填张个人信息表格,或者直接面试二、三大框架方面问题1、Spring
2017-07-25 09:33:13 190
转载 Java高级工程师常见面试题
一、Java基础1. String类为什么是final的。2. HashMap的源码,实现原理,底层结构。3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。4. 描述一下ArrayList和LinkedList各自实现和区别5. Java中的队列都有哪些,有什么区别。6. 反射中,Class.forName和cl
2017-07-25 09:32:51 1014
转载 百度 - java高级工程师
1. 简要描述String、StringBuffer、StringBuilder的区别2. 描述一下JVM加载CLASS文件的原理机制3. Char型变量能否存储一个中文字?为什么?4. JAVA中实现多态有哪些方式?5. 写出你所知道的java.util.concurrent包中的类,并简述它们的用途和应用场景6. 简述synchronized和java.util.concu
2017-07-25 09:32:35 370
转载 spring aop的五种通知类型
spring aop通知(advice)分成五类: 前置通知[Before advice]:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常。 正常返回通知[After returning advice]:在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行。 异常返回通知[After throwing advice]:在连接点抛出异常后执行。 返回通知[Af
2017-07-24 17:23:25 563
转载 浅谈Session与Cookie的区别与联系
一、Session的概念Session 是存放在服务器端的,类似于Session结构来存放用户数据,当浏览器 第一次发送请求时,服务器自动生成了一个Session和一个Session ID用来唯一标识这个Session,并将其通过响应发送到浏览器。当浏览器第二次发送请求,会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和
2017-07-24 17:16:42 149
转载 几种常见的Map的区别
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap.Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取
2017-07-24 17:13:09 12769
转载 Java设置session超时(失效)的时间
在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session具体设置的方法有三种:1.在web容器中设置(以tomcat为例)在tomcat-7.0\conf\web.xml中设置,以下是tomcat7.0中默认配置:?12330
2017-07-24 17:11:15 480
转载 Java设置session超时(失效)的三种方式
1. 在web容器中设置(此处以tomcat为例)在tomcat-5.0.28\conf\web.xml中设置,以下是tomcat 5.0中的默认配置:[html] view plain copy session-config> session-timeout>30
2017-07-24 17:09:02 925
转载 99%的人都理解错了HTTP中GET与POST的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你
2017-07-24 17:06:47 262
转载 实现html页面的参数传递
方法一:下面是javascrīpt的一种实现方法, 这个函数是通过window.location.href中的分割符获得各个参数。有了这个函数,就可以在页面之间传递参数了。/**函数功能:从href获得参数*sHref: http://www.artfh.com/arg.htm?arg1=d&arg2=re*sArgName:arg1, arg2*return:
2017-07-24 17:02:28 322
转载 Java创建对象的过程
Java创建对象的过程简单记录一下Java创建对象的过程,就是new一个对象的时候发生了哪些事情。Java程序执行的过程在此不作说明,对象的创建过程只是程序执行过程的一部分。有关整个程序执行的过程,等熟悉了虚拟机之后在作说明。对象创建过程简述Java中对象的创建就是在堆上分配内存空间的过程,此处说的对象创建仅限于new关键字创建的普通Java对象,不包括数组对象的创建。
2017-07-24 16:59:59 258
转载 java数据库连接(一)--从最简单地jdbc连接说起
JDBCJDBC全称"Java DataBase Connectivity",它是一套面向对象的应用程序接口(API),并且制定了统一的访问各类关系数据库的标准接口,为各个数据库厂商提供了标准的接口实现。通过使用JDBC技术,开发人员可以用纯Java语言和标准的SQL语句编写完整的数据库应用程序,真正地实现软件的跨平台。 本文地址:http://blog
2017-07-24 16:56:56 700
转载 spring 事务-使用@Transactional 注解(事务隔离级别)
先看下@Transactional可以配制那些参数及以其所代表的意义。isolation枚举org.springframework.transaction.annotation.Isolation的值事务隔离级别noRollbackForClass[]一组异常类,遇到
2017-07-24 16:54:24 538
转载 HTTP协议详解(真的很经典)
引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支持客户/
2017-07-23 16:38:08 192
转载 分布式搜索elasticsearch中文分词集成
elasticsearch官方只提供smartcn这个中文分词插件,效果不是很好,好在国内有medcl大神(国内最早研究es的人之一)写的两个中文分词插件,一个是ik的,一个是mmseg的,下面分别介绍下两者的用法,其实都差不多的,先安装插件,命令行:安装ik插件:plugin -install medcl/elasticsearch-analysis-ik/1.1.0下载ik
2017-07-17 11:25:37 288
转载 用logstash导入ES且自定义mapping时踩的坑
问题发生背景: 1.本来我是使用logstash的默认配置向ES导入日志的。然后很嗨皮,发现一切OK,后来我开始对日志进行聚合统计,发现terms聚合时的key很奇怪,后来查询这奇怪的key,发现这些关键字都是源字符串的一段,而且全部复现场景都是出现"xxxx-xxxxxx"时就会截断,感觉像是分词器搞的鬼。所以想自己定制mapping。下面是原来的logstash配置output{elas
2017-07-17 11:24:46 7538
原创 查看ElasticSearch服务状态和结果的URL
1,查看es集群状态http://ip:port/_cat/health?v2,集群节点健康查看http://ip:port/_cat/nodes?v 3,列出集群索引http://ip:port/_cat/indices?v 索引相关URL说明/index/_search不解释
2017-07-17 11:24:22 18596
转载 ElasticSearch集群脑裂,怎么办?
1、什么是“脑裂”现象?由于某些节点的失效,部分节点的网络连接会断开,并形成一个与原集群一样名字的集群,这种情况称为集群脑裂(split-brain)现象。这个问题非常危险,因为两个新形成的集群会同时索引和修改集群的数据。2、产生“脑裂”的原因?(1)网络原因内网一般不会出现此问题,可以监控内网流量状态。外网的网络出现问题的可能性大些。(2)节点负载由于master节点
2017-07-17 11:24:02 1244
WEB-ADI遇到这个问题,大神帮忙?求大神搞一下
2015-06-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人