- 博客(71)
- 收藏
- 关注
转载 Mysql的三种分页方法
1、limit m,n分页语句:select * from dept order by deptno desc limit 3,3;select * from dept order by deptno desc limit m,n;limit 3,3的意思扫描满足条件的3+3行,撇去前面的3行,返回最后的3行,那么问题来了,如果是limit 200000,200,需要扫描200200行,如果在一个...
2018-03-28 14:45:51
2813
转载 Oracle数据库分页的三种方法
-- 不能对ROWNUM使用>(大于1的数值)、>=(大于或等于1的数值)、=(大于或等于1的数值),否则无结果-- 所以直接用只能从1开始-- rownum >10 没有记录,因为第一条不满足去掉的话,第二条的rownum又成了1,所以永远没有满足条件的记录。select * from student where rownum>=1;--如果想要用rownum不从1开始,...
2018-03-28 14:44:20
466
转载 HashMap的实现原理
HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap的数据结构在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数...
2018-03-28 14:43:25
315
转载 Java中HashMap底层实现原理(JDK1.8)源码分析
在JDK1.6,JDK1.7中,HashMap采用位桶+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里。但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,HashMap采用位桶+链表+红黑树实现,当链表长度超过阈值(8)时,将链表转换为红黑树,这样大大减少了查找时间。简单说下HashMap的实现原理:首先有一个每个元...
2018-03-28 14:40:24
328
转载 java分布式服务框架:zookeeper+dubbo+springmvc集成
Dubbo是一个分布式服务框架,在这基础上可以做成分布式计算机网络解决很多高并发或者数据处理量大的问题!二zookeeper又是dubbo的一个重要组件,在此,我借助java语言和springmvc框架介绍如何初步构建一个dubbo服务框架.一:Dubbo背景大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进...
2018-03-27 10:43:39
1327
转载 浅谈JAVA常用分布式实现方式及优缺点
常用的有EJB、rmi、Web Service,还有Hessian、NIO等,它们的优缺点比较比下:1:EJB 优势:可扩展性好,安全性强,支持分布式事务处理。 劣势:不能跨语言;配置相对复杂,不同J2EE容器之间很难做无缝迁移。2:rmi 优势:面向对象的远程服务模型;基于TCP协议上的服务,执行速度快。 劣势:不能跨语言;每个远程对象都要绑定端口,不易维护;不支持分布式...
2018-03-27 10:38:24
2150
转载 java中分布式架构的演变和介绍
作者:知乎用户链接:https://www.zhihu.com/question/22764869/answer/31277656来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。备注:由于相关图片不能下载,所以建议看原文链接更完整一些。(友情提示)分布式架构的演进系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗...
2018-03-27 10:36:25
539
转载 java中的分布式应用(一)之分布式介绍
分布式概念要理解分布式系统,主要需要明白一下2个方面:1.分布式系统一定是由多个节点组成的系统。 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。2.这些连通的节点上部署了我们的节点,并且相互的操作会有协同。 分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起...
2018-03-27 10:26:39
17741
转载 分布式系统的理解
1. 如何理解“分布式”? 经常听到”分布式系统“,”分布式计算“,”分布式算法“。分布式的具体含义是什么?狭义的分布是指,指多台PC在地理位置上分布在不同的地方。2. 分布式系统 分布式系统:多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的“目标或者任务”。 分布式程序: 运行在分布式系统上的计算机程序。 分布式计算:利用分布式...
2018-03-27 10:24:46
987
转载 HashMap的容量与扩容
有几个重要的常量:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;//默认的桶数组大小static final int MAXIMUM_CAPACITY = 1 << 30;//极限值(超过这个值就将threshold修改为Integer.MAX_VALUE(此时桶大小已经是2的31次方了),表明不进行扩容了)sta...
2018-03-27 10:17:24
4008
转载 从volatile说到,i++原子操作,线程安全问题
1、可见性(Visibility) 可见性是指,当一个线程修改了某一个全局共享变量的数值,其他线程是否能够知道这个修改。 显然,在串行程序来说可见性的问题是不存在的。因为你在任何一个地方操作修改了某个变量,那么在后续的程序里面,读取这个变量的数值,一定是修改后的数值。 但是,这个问题在并行程序里面就不见得了。在并行程序里面,如果一个线程修改了某一个全局变量...
2018-03-27 10:13:32
513
转载 i++和++i的区别,及其线程安全问题
i++和++i都是i=i+1的意思,但是过程有些许区别:i++:先赋值再自加。(例如:i=1;a=1+i++;结果为a=1+1=2,语句执行完后i再进行自加为2)++i:先自加再赋值。(例如:i=1;a=1+++i;结果为a=1+(1+1)=3,i先自加为2再进行运算)但是在单独使用时没有区别:如for(int i=0;i<10;i++){ }和for(int i=0;i<10;++i...
2018-03-27 10:12:06
1986
转载 从volatile说到i++的线程安全问题
简介volatile关键字保证了在多线程环境下,被修饰的变量在别修改后会马上同步到主存,这样该线程对这个变量的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存每个Thread都拥有自己的线程存储空间Thread何时同步本地存储空间的数据到主存是不确定的例子借用Google JEREMY MANSON 的解释,上图表示两个线程并发执行,而且代码顺序上为Thre...
2018-03-27 10:10:54
251
转载 java i++和++i的区别
//i++和++i是有区别的,//i++和++i都代表着i=i+1;//i++是在一个先使用原值,然后加1,即先使用i的值,后让i+1.//++i则是先加1后使用,即先让i+1后再使用i的新值.class ijiajia{ public static void main(String[] args) { System.out.println("Hello World!"); ...
2018-03-27 10:09:24
354
转载 java程序员面试常见面试题及答案整理
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的...
2018-03-14 16:45:35
478
转载 请说一下http请求的基本过程
首先http是一个应用层的协议,在这个层的协议,只是一种通讯规范,也就是因为双方要进行通讯,大家要事先约定一个规范。1.连接 当我们输入这样一个请求时,首先要建立一个socket连接,因为socket是通过ip和端口建立的,所以之前还有一个DNS解析过程,把www.mycompany.com变成ip,如果url里不包含端口号,则会使用该协议的默认端口号。DNS的过程是这样的:首先我们知道我...
2018-03-14 16:21:50
658
转载 如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?(瞬联)
如果类a继承类b,实现接口c,而类b和接口c中定义了同名变量,请问会出现什么问题?(瞬联)interface A{ int x = 0;}class B{ int x =1;}class C extends B implements A{ public void pX(){ System.out.println(x); } ...
2018-03-14 16:17:58
1743
转载 java内部类有什么好处?为什么需要内部类?
为什么需要内部类?java内部类有什么好处?为什么需要内部类?首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。不过你可能要质疑,更改一下方法的不就行了吗?的确,以此作为设计内部类的理由,实在...
2018-03-14 16:16:28
42371
5
转载 十大面试问题解惑,秒杀一切HR、技术面试。程序员必读!
十大面试问题解惑,秒杀一切HR、技术面试。程序员必读!最能体现求职者能力的就是面试,能不能拿到Offer,取决于你面试时的表现,只有有准备才能在面试过程中游刃有余。小编收集了10个面试官最爱提的问题,虽然题目千变万化,但是万变不离其宗,只要掌握了答题的技巧,了解面试官的出题思路,再难的题目也会迎刃而解。1. 请介绍一下你自己这是面试官100%会问的问题,一般人回答这个问题过于平常...
2018-03-14 16:10:32
1128
转载 Java工程师面试必看
打算换个工作,近一个月面试了不少的公司,下面将一些面试经验和思考分享给大家。另外校招也快要开始了,为在校的学生提供一些经验供参考,希望都能找到满意的工作。 刚开始面试的几家公司,就是备受各种打击、就是一顿狂问,结果答上来的问题没几个,开始给自己的信心造成了一定的影响,后来经过调整后,又恢复到了信心满满的状态。一方面是工作经验有限,另一方面是没有进行系统的复习。后者占主要地位。所以如...
2018-03-14 15:58:56
269
转载 Java 多线程编程 — 锁优化
原文出处: melonstreet并发环境下进行编程时,需要使用锁机制来同步多线程间的操作,保证共享资源的互斥访问。加锁会带来性能上的损坏,似乎是众所周知的事情。然而,加锁本身不会带来多少的性能消耗,性能主要是在线程的获取锁的过程。如果只有一个线程竞争锁,此时并不存在多线程竞争的情况,那么JVM会进行优化,那么这时加锁带来的性能消耗基本可以忽略。因此,规范加锁的操作,优化锁的使用方法,避免不必要的...
2018-03-14 14:45:21
162
转载 HashMap和Hashtable的区别
本文由 ImportNew - 唐小娟 翻译自 Javarevisited。欢迎加入翻译小组。转载请见文末要求。HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时...
2018-03-14 14:42:12
126
转载 8张图理解Java
本文由 ImportNew - era_misa 翻译自 programcreek。欢迎加入翻译小组。转载请见文末要求。一图胜千言,下面图解均来自Program Creek 网站的Java教程,目前它们拥有最多的票选。如果图解没有阐明问题,那么你可以借助它的标题来一窥究竟。1、字符串不变性下面这张图展示了这段代码做了什么12String s = "abcd";s = s.concat("ef");...
2018-03-13 17:00:30
113
转载 java队列——queue详细分析
Queue: 基本上,一个队列就是一个先入先出(FIFO)的数据结构Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接 口。 Queue的实现1、没有实现的阻塞接口的LinkedList: 实现了java.util.Queue接口和java.util.AbstractQueue接口 内置的不阻塞队列: PriorityQueue ...
2018-03-13 16:16:22
186
转载 java中方法的参数传递机制
问:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。 Java参数,不管是原始类型还是引用类...
2018-03-13 15:38:55
147
转载 到底是值传递还是引用传递
Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements接口实现多继承的功能值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式...
2018-03-13 15:32:43
268
转载 Math.ceil,Math.round,Math.floor三者的区别
1.Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数,看下面几个例子就明白。小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11 小数点后第一位>5正数:Math.round(11.68)=12负数:Math.round(-11.68)=-12 小数点后第一位=5正数:M...
2018-03-13 14:48:03
838
转载 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法
堆区:专门用来保存对象的实例(new 创建的对象和数组),实际上也只是保存对象实例的属性值,属性的类型和对象本身的类型标记等,并不保存对象的方法(方法是指令,保存在Stack中)1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身.3.一般由程序员分配释放...
2018-03-13 14:40:47
15030
1
转载 解释内存中的栈(stack)、堆(heap)和静态区(static area)的用法。
通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的 现场保存 都使用内存中的栈空间;而通过new关键字和构造器创建的对象放在堆空间;程序中的字面量(literal)如直接书写的100、”hello”和常量都是放在静态区中。栈空间操作起来最快但是栈很小,通常大量的对象都是放在堆空间,理论上整个内存没有被其他进程使用的空间甚至硬盘上的虚拟内存都可以被当成堆空间来使用。String ...
2018-03-13 14:31:52
2384
转载 &和&&的区别?
&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true整个表达式的值才是true。&&之所以称为短路运算是因为,如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&...
2018-03-13 12:10:47
311
转载 Java中boolean类型到底占用多少个字节?
(1)什么是boolean类型,根据官方文档的描述(http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html):boolean: The boolean data type has only two possible values: true and false. Use this data type for s...
2018-03-13 11:28:20
16684
3
转载 char与byte的区别
很多初学者(包括我,已经学了一年多Java了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比较,先将结果与大家分享: byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ...
2018-03-13 11:25:40
188
转载 Servlet 中 session 的创建、销毁及监听
1、session 和 cookie关于session和cookie详细的内在机制和区别,请另行查阅资料。 可参看:Session机制详解当客户端首次请求session对象时候,服务器会为其创建一个session,并计算出具有唯一性的sessionId,用来标识该session对象,并将被其包含在本次请求响应中返回给客户端,客户端一般采用cookie对其进行保存。在session有效期,当浏览器下...
2018-03-12 16:18:01
1627
转载 servlet的生命周期
1. 加载 / 实例化: Servlet容器查找并加载所有的servlet类.当Servlet引擎启动时或者说在客户http请求委托时实例一个Servle或多个Servlet类 2. 初始化 这里在客户请求委托代理之前,使用init()方法进行初始化. 3. 请求处理 当初始化完成之后这时就可以处理客户http请求了.这里使用service...
2018-03-12 16:14:49
109
转载 comparator接口与Comparable接口的区别
概述Comparable和Comparator都是用来实现集合中元素的比较、排序的。Comparable是在集合内部定义的方法实现的排序,位于java.lang下。Comparator是在集合外部实现的排序,位于java.util下。Comparable是一个对象本身就已经支持自比较所需要实现的接口,如String、Integer自己就实现了Comparable接口,可完成比较大小操作。自定义类要...
2018-03-12 15:48:10
114
转载 线程的几种可用状态
1. 新建( new ):新创建了一个线程对象。2. 可运行( runnable ):线程对象创建后,其他线程(比如 main 线程)调用了该对象 的 start ()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获 取 cpu 的使用权 。3. 运行( running ):可运行状态( runnable )的线程获得了 cpu 时间片( timeslice ) ,执行程序代码。4. ...
2018-03-12 14:22:09
188
转载 位,字节和字的区别
术语位,字节和字用于描述计算机数据单位或计算机存储单位。这里主要指存储单位最小的存储单位称为位(bit):只能容纳两个值(0或1)之一,不能在一个位中存储更多的信息。位是计算机存储的基本单位。字节(byte)是常用的计算机存储单位。字节的标准定义:一个字节均为8位。由于上述所讲每个位或者是0或者是1,所以一个8位的字节包含256种可能的0,1组合对于一种给定的计算机设计,字(word)是自然的存储...
2018-03-12 11:30:24
19470
3
转载 Java中8种基本数据类型及其默认值
Java中8种基本数据类型总结序号数据类型大小/位封装类默认值可表示数据范围1byte(位)8Byte0-128~1272short(短整数)16Short0-32768~327673int(整数)32Integer0-2147483648~21474836474long(长整数)64Long0-9223372036854775808~92233720368547758075float(单精度)3...
2018-03-12 11:23:52
15420
2
转载 Java四类八种基本数据类型
第一类:逻辑型boolean第二类:文本型char第三类:整数型(byte、short、int、long)char类型占2个字节short从-32768到32767int从-2147483648,到2147483647共10位long从-9223372036854775808到9223372036854775807共19位第四类:浮点型(float、double)在数学中0到1有无数个浮点数;而计...
2018-03-12 11:21:47
139
转载 Cookie和Session详解
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session。1.1 Cookie机制在程序中,会话跟踪是很重要的事情。...
2018-03-12 11:08:47
30716
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人