- 博客(86)
- 收藏
- 关注
Java工程师面试必问题目
算法算法复杂度(时间复杂度和空间复杂度)排序快速排序单词倒序(类似how are you变成you are how)查找二分查找查找第一个符合要求的值(比如一个数组,要求你查找到第一个连续数字的数字子数组)JavaJVM模型Java GC算法和机制Java线程池参数调优JVM性能调优和监控...
2015-11-27 18:29:42
337
全面理解OAuth 2.0
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。一、应用场景为了理解OAuth的适用场合,让我举一个假设的例子。有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"...
2014-10-30 10:21:05
164
OAuth 2.0概览
OAuth 1.0已经在IETF尘埃落定,编号是RFC5894http://tools.ietf.org/html/rfc5849这也标志这OAuth已经正式成为互联网标准协议。 OAuth 2.0也早已经开始讨论和建立的草案 OAuth在OAuth组织的主页http://www.oauth.net/2/ OAuth2.0的草案http://tools....
2014-10-27 14:59:36
223
Java排序算法【总结】
1、冒泡排序冒泡排序是排序算法中最基本的一种排序方法,该方法逐次比较两个相邻数据的大小并交换位置来完成对数据排序,每次比较的结果都找出了这次比较中数据的最大项,因为是逐次比较,所以效率是O(N^2)的。[java] view plaincopy public void bubbleSort() { int out,in; ...
2014-10-27 09:43:34
121
什么时候用MongoDB?
NoSQL products (and among them MongoDB) should be used to meet challenges. If you have one of the following challenges, you should consider MongoDB:You Expect a High Write Load MongoDB by defaul...
2014-10-24 12:54:03
318
敏捷开发
敏捷开发简单的说,敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。价值观敏捷建模(Agile Modeling,AM)的价值观包括了E...
2014-10-24 12:46:45
304
大规模网站架构的缓存机制和几何分形学
缓存机制和几何分形学缓存机制在我们的实际研发工作中,被极其广泛地应用,通过这些缓存机制来提升系统交互的效率。简单的总结来说,就是在两个环节或者系统之间,会引入一个cache/buffer做为提升整体效率的角色。 而有趣的是,这种缓存机制令人惊奇并且优美的遵循着“几何分形”的规律,也就是几何分形学中的“自相似性”:从整体上看遵循某种组成规律或者特性,同时从每一个局部看,仍然遵循某种组成的规...
2014-10-24 12:09:36
101
MySQL导出数据到文件
MySQL导出数据到文件: mysql -h ip -uroot -p database -e "select * from table">/tmp/export.txt
2014-10-20 17:50:23
131
淘宝的架构
淘宝的架构淘宝用的是JBoss,框架是iBATIS,缓存服务器是自己开发的,基本遵循SNA架构,水平扩展,数据库是Oracle,阿里集团的DBA几乎是国内最强悍的。目前淘宝的系统架构正在重构,计划用两到三年时间重写,目标有两个:1、水平扩展已经不满足需求了,还需要水平加垂直扩展 2、开放API,让店家可以把外部网站资源集成到淘宝,不必直接在淘宝开店淘宝首席架构师是原来JBoss的Be...
2014-10-20 13:47:35
167
天猫浏览型应用的CDN静态化架构演变
在天猫双11活动中,商品详情、店铺等浏览型系统,通常会承受超出日常数倍甚至数十倍的流量冲击。随着历年来双11流量的大幅增加, 每年这些浏览型系统都要面临容量评估、硬件扩容、性能优化等各类技术挑战。因此,架构方面的重点在于,如何能够利用合理成本应对瞬间飙高的峰值请求,并确 保活动完整周期中系统容量的可伸缩性、用户响应时间的稳定性,以及外部依赖系统出现问题时的高可用性。此外,作为最主要的...
2014-10-20 13:45:22
151
大型网站系统架构的演化
前言 一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海...
2014-10-20 11:53:28
91
Memcache和Redis比较
Today marks the day that memcached no longer has any significant advantages over redis, while redis continues to have many distinct advantages over memcached. Today, redis 3.0, which includes Redis C...
2014-10-19 17:29:12
112
Java集群解决方案
序言越来越多的关键应用运行在J2EE(Java 2, Enterprise Edition)中,这些诸如银行系统和账单处理系统需要高的可用性(High Availability, HA),同时像Google和Yahoo这种大系统需要大的伸缩性。高可用性和伸缩性在今天高速增长的互连接的世界的重要性已经证实了。eBay于 1999年6月停机22小时的事故,中断了约230万的拍卖,使eBay的股票...
2014-10-18 18:28:44
1065
Java公钥私钥签名工具包应用实例
package com.locator.encryption; import java.io.ByteArrayOutputStream;import java.security.Key;import java.security.KeyFactory;import java.security.KeyPair;import java.security....
2014-10-17 17:57:31
346
Java完整并发教程
计算机的使用者一直以为他们的计算机可以同时做很多事情。他们认为当其他的应用程序在下载文件,管理打印队列或者缓冲音频的时候他们可以继续在文字处理程序上工作。甚至对于单个应用程序,他们任然期待它能在在同一时间做很多事情。举个例子,一个流媒体播放程序必须能同时完成以下工作:从网络上读取数字音频,解压缩数字音频,管理播放和更新程序显示。甚至文字处理器也应该能在忙于重新格式化文本和刷新显示的情况下同时响...
2014-10-11 12:15:52
145
Java 7 并发编程指南
当你用计算机工作的时候,你在同时做多样事情。你可以边听音乐边写文档边读取邮件。可以这样做的原因是你的操作系统运行并发任务。并发编程是关于基础与进程的一个提供了多任务或者多程序同时运行还相互沟通来交换数据和相互同步的平台。Java是一个并发平台,在Java程序中提供了很多执行并发任务的类。每个版本,Java提升了促进程序员开发并发程序的功能。这本书包含了在Java版本7的并发API中最重要和最有用...
2014-10-11 10:01:10
86
Tomcat configuration recommendations
This topic provides some configuration tips for getting started with your Tomcat application server.Keep in mind that complete documentation on configuring and using the Tomcat server is available ...
2014-10-11 09:50:24
111
原创 JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550...
2014-10-10 17:36:17
84
原创 The Ubuntu's Directory Tree
Ubuntu adheres to the Filesystem Hierarchy Standard for directory and file naming. This standard allows users and software programs to predict the location of files and directories. The root level di...
2014-10-09 14:22:26
111
原创 Instagram工程师教你如何改善App的性能
扁平化设计由于其简洁的外表,更少的按钮和选项使得界面干净整齐,从而减少认知障碍的产生。扁平化设计更是功能上的简化于与重组,相比于 拟物化而言,扁平风格的一个优势就在于它可以更加简单直接的将信息和事物的工作方式展示出来。本文来自Instagram一名工程师的分享。 以下为译文:扁平化设计仅仅只是一个漂亮的外表,还是一个性能利器,从而触发一场UI革命?实践证明是后者。 Tyler...
2014-10-09 14:20:38
153
原创 What Factors Justify the Use of Apache Hadoop?
Relational database authors and advocates have two criticisms of Hadoop. First, that most users have little need for Big Data. Second, that MapReduce is more complex than traditional SQL queries.B...
2014-10-07 10:15:17
97
原创 Java NIO框架Mina, Netty, Grizzly比较
Mina:Mina (Multipurpose Infrastructure for Network Applications) is a relatively new project of the Apache organization, it provides a very convenient framework for the development of high-performa...
2014-10-05 21:31:19
224
原创 Java并发完整教程
Table of Contents1 什么是并发问题。2 java中synchronized的用法3 Java中的锁与排队上厕所。4 何时释放锁?5 Lock的使用6 利用管道进行线程间通信7 阻塞队列8 使用Executors、Executor、ExecutorService、ThreadPoolExecutor9 并发流程控制10 并发3定律...
2014-10-02 16:52:25
95
原创 JAVA线程池的分析和使用
1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。...
2014-09-30 17:57:52
61
Spring Security
使用Spring Security 3 来实现多种用户类型的登录方式,在我看来,大致分为两大步,第一步是控制多种用户登录类型的登录界面的展示,第二步是控制多种用户登录的验证方式,而第二大步又可分为三个小步来展开,第一小步是验证过滤器,第二小步是验证凭证的制作,第三小步是验证用户凭证,在这里我将就这几步的分析与实现一步一步展开来进行描述。 这里我假定有这样一个系统,分为前台用户...
2014-09-30 16:49:17
87
Java NIO Chinese Tutorial
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。本系列教程将有助于你学习和理解Java NIO。感谢并发编程网的翻译和投递。 (关注ITeye官微,随时随地查看最新开发资讯、技术文章。) Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于...
2014-08-30 22:13:41
99
100 Best Quotes On Leadership
A great quote can provide personal inspiration and can be used to educate others; in my book Employee Engagement2.0 I open every chapter with an enlightening quotation. Below are my top 100 leadershi...
2014-08-30 18:00:59
758
原创 解决Java Heap sapce 与 Java PermGen space的问题
1.当java程序运行到一定时间的时候。常常抛出java.lang.OutOfMemoryError: Java heap space异常。2.java heap space 指的是JVM的内存不够用了,内存泄露。 原因: JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存...
2014-08-22 16:06:51
171
参数化查询
参数化查询(Parameterized Query 或 Parameterized Statement)是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击 (SQL Injection) 的攻击手法的防御方式。目录原理SQL 指令撰写方法展开原...
2012-11-01 17:56:01
148
JDBC查询优化
1、在客户端软件开发中使用Thin驱动程序在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件、applets、servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件。在客户机端软件的开发中,我们可以选择OCI驱动程序或Thin驱动程序。OCI驱动程序利用Java本地化接口(JNI),通过Oracle客户端软件与数据库进行通讯...
2012-11-01 17:47:56
211
原创 SQL SERVER查询优化
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 ...
2012-11-01 17:32:20
102
ORACLE SQL语句优化技术分析
SQL语句优化技术分析一、操作符优化1、IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表...
2012-11-01 17:19:13
89
window.location.hash解析
location对象:设置或获取当前URL的信息使用location对象可以设置或返回URL中的一些信息,一个完整的URL地址的格式为:协议://主机:端口/路径名称#hash标识?搜索条件其中,协议是URL的起始部分,用于指定该URL地 址所采用的通信协议,比如http、ftp等;主机是指该URL所对应的服务器的名称;端口用于指定服务器用于通信的端口号,与主机名之间使用冒...
2011-07-10 22:28:16
339
Request的getParameter()和getAttribute()方法的区别
1, request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。 - request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据 - getParameter返回String2, req...
2011-07-10 20:50:06
142
原创 数据库持久层开发之Hibernate主键
1,Assigned,主键的生成值完全由用户决定,与底层的数据库无关。用户需要维护主键值。要在调用session.save()前指定主键值。2,Hilo,它其实是通过一种叫做hi/lo的算法来实现的主键生成机制。这种算法通常叫做高第位算法,Hi代表一个高位值,lo代表一个低位值,然后吧算法得到的两个值拼接起来作为数据库中的唯一主键。但这种方式需要额外的数据库表和字段,提高高位值来源。默认情...
2011-06-06 10:30:09
79
原创 Liferay里面的URL跳转非常复杂呀?我最近在弄Liferay开发项目,我知道如何配置登陆后的首页,可是不知道里面到底是怎么工作的?给点建议吧?...
Liferay里面的URL跳转非常复杂呀?我最近在弄Liferay开发项目,我知道如何配置登陆后的首页,可是不知道里面到底是怎么工作的?给点建议吧?
2011-05-30 22:45:39
135
全球企业创新榜出炉 Apple六连冠
美国《商业周刊》日前评出2010 年度“全球最具创新力企业50强”名单。虽然前25名中,美国企业占据12个席次,首次不占多数,但Apple、Google和微软三个美国IT巨头雄踞前三甲,而且Apple已经是连续六年蝉联冠军,可以说是气势如虹(获奖理由:不断发明为数字技术带来革命性需求的产品,最新的iPad可能革掉上网本甚至笔记本的命)。加上排名第4的IBM和第6的Amazon,美国IT业在...
2010-04-19 15:32:34
131
深度了解EJB
overview of ejbEJB是sun的服务器端组件模型,最大的用处是部署分布式应用程序,类似微软的.net技术。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。 EJB (Enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里...
2010-02-27 14:39:20
118
职场杰出人士的20个好习惯
最近看了《职场杰出人士的20个好习惯》这篇文章,感觉非常有道理,现贴出来与大家分享。 在研究大量成功企业领导者的案例后,我们发现,这些最优秀的企业领导人知道自己需要什么,并能尽全部的努力去达到自己的目标,他们懂得做人、善于决策、充满热忱、持续创新、架构关系、激励团队以及赢得拥戴……最成功的企业家所共同具有的良好习惯和素质,使得这些企业领导人能够脱颖而出。 第一个...
2010-02-27 14:36:00
125
Java持久层框架iBATIS 3(BETA 1)版本发布
iBatis 3版本从底层向上完全进行了重写,和发布于2002年的第一个iBatis版本相比有重大的改动。增加了很多最新的功能特性,充分采纳了Java 5 的功能优点。 iBatis 3包含了一些简化的设计和新的工具,可帮助您建立驱动应用程序的大型数据库。 同时iBatis 3更是延续了以往使iBatis之前风格,并使之得以继续发扬。iBatis 3无需第三方的依赖,比以往任何时候都更简单,但功能...
2010-02-27 14:32:45
122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人