1.Java基础
文章平均质量分 74
郑学炜
这个作者很懒,什么都没留下…
展开
-
15.WEB的水平和垂直扩展
Web 站点的水平扩展和垂直扩展当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展。选用哪种策略主要依赖于要解决的问题以及系统资源的限制。在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点。如果你已经有一个软件系统需要不断成长,那么你将有意或者无意中选择这两种策略中的一种。举个例子例如,假设你现在负责一批木材采伐的操作。在这个例子中,我们假设有3辆卡车,每辆车一次可以运2...原创 2018-03-31 12:26:38 · 451 阅读 · 1 评论 -
17.Object类有哪些方法
前言Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。如图可知,Object类有12个成员方法,按照用途可以分为以下几种 1,构造函数 2,hashCode和equale函数用来判断对象是否相同, 3,wait(),wait(long),wait(long,int),notify(),notifyAll() 4,toS...原创 2018-05-10 08:27:35 · 1188 阅读 · 0 评论 -
4.六大原则例子-- 迪米特法则(LoD)例子
迪米特法则定义一个对象应该对其他对象保持最少的了解。问题由来类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样编程才能做到低耦合呢?那正是迪米特法...原创 2018-04-25 20:52:20 · 2370 阅读 · 1 评论 -
18.浅谈Java String.intern()
String.intern()原理String.intern()是一个Native方法,底层调用C++的 StringTable::intern 方法,源码注释:当调用 intern 方法时,如果常量池中已经有该字符串,则返回池中的字符串;否则将此字符串添加到常量池中,并返回字符串的引用。package com.ctrip.ttd.whywhy;class Test { public sta...原创 2018-05-17 10:23:57 · 545 阅读 · 0 评论 -
20.java常问基础
1. Java 基础知识点2. Java 常见集合3. 高并发编程(JUC 包)4. JVM 内存管理5. Java 8 知识点6. 网络协议相关7. 数据库相关8. MVC 框架相关9. 大数据相关10. Linux 命令相关Java基础知识01. 面向对象的特性有哪些?答:封装、继承和多态。02. Java 中覆盖和重载是什么意思?解析:覆盖和重载是比较重要的基础知识点,并且容...原创 2018-05-17 10:48:00 · 696 阅读 · 0 评论 -
19.JDK中常用包及其类和功能详细剖析
JDK所提供的所有标准Java类都存放在Java包中,如java.lang包中包含了运行Java必不可少的系统类。由于系统会自动将java.lang引入,所以不需要在源文件中用import语句来显示地引入这个包。另外,Java跪地过java.util和java.io是必须提供的标准包,在JDK中常用的包有以下几种:1.java.lang:语言包2.java.util:实用包3.java.awt:抽...原创 2018-05-17 10:52:20 · 441 阅读 · 0 评论 -
16.java的四种引用类型与队列:强、弱、软、虚与引用队列(ReferenceQueue)
java的四种引用类型:强、弱、软、虚(就是对象被引用的时候,这四种类型对应被回收的时机。而我们平时的可达性分析,其实经常讲的是强引用,因为对象可达就不会被回收了,但是这儿就有可能会,比如弱,虚,就每次GC就回收掉了。而软则等到内存满的时候会回收掉。软,弱,用于缓存,虚用于跟踪对象的状态。)1、强引用(StrongReference) 强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收...原创 2018-05-05 15:46:09 · 1113 阅读 · 0 评论 -
13.Java的finalize,finally,final三个关键字的区别和应用场景
(1)final:可以作为修饰符修饰变量、方法和类,被final修饰的变量只能一次赋值;被final修饰的方法不能够在子类中被重写(override);被final修饰的类不能够被继承。 (2)finally用在异常处理中定义总是执行代码,无论try块中的代码是否引发异常,catch是否匹配成功,finally块中的代码总是被执行,除非JVM被关闭(System.exit(1)),通常用作释放外部...原创 2018-04-29 11:44:02 · 2082 阅读 · 0 评论 -
14.finalize的作用
其工作原理:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。所以如果用finalize()就能在垃圾回收时刻做一些重要的清理工作。 1. finalize的作用 · finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法...原创 2018-04-29 12:19:00 · 967 阅读 · 0 评论 -
22.fast-fail与fast-safe机制
fail-fast机制fail-fast:它是Java集合(Collection)的一种错误机制。当多个线程对同一个集合进行修改结构操作,使用集合的迭代器iterator,会首先检测是否有对集合的并发修改,进而产生ConcurrentModificationException异常提示。 阅读ArrayList的add方法源码,可以注意到在add方法中,除了校验底层数组的容量是否需要扩充之外,恒久对...原创 2018-05-26 08:28:03 · 763 阅读 · 0 评论 -
2.六大原则例子-- 接口隔离原则(ISP)例子
这篇文章主要介绍了接口隔离原则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要...原创 2018-04-25 14:02:26 · 4928 阅读 · 1 评论 -
3.六大原则例子-- 依赖倒置原则(DIP)例子
设计模式六大原则例子-- 依赖倒置原则(DIP)例子之前我们对设计模式的六大原则做了简单归纳,这篇博客是对依赖倒置原则进行的举例说明。依赖倒置原则的意义DIP是6大原则中最难以实现的原则,它是实现开闭原则的重要途径,DIP没有实现,就别想实现对扩展开放,对修改关闭。在项目中只要记住“面向接口编程”就基本上抓住了DIP的核心对各种概念进行一个描述:· 低层模块:不可分割的原子逻辑,可能...原创 2018-04-25 13:56:48 · 3500 阅读 · 0 评论 -
1.面向对象三大特性六大原则
JAVA是一门面向对象的语言,那么其面向对象主要有以下几个特性和原则:面向对象三大特性六大原则面向对象的三大特性是"封装、"多态"、"继承",五大原则是"单一职责原则"、"开放封闭原则"、"里氏替换原则"、"依赖倒置原则"、"接口分离原则"、"迪米特原则(高内聚低耦合)"。 什么是面向对象面向对象(Object Oriented,OO)是软原创 2018-04-04 12:48:17 · 6047 阅读 · 0 评论 -
6.抽象类是什么
一、抽象类的定义 抽象类是抽象方法和非抽象方法的集合。在特殊情况下,抽象类中全部是抽象方法或者全部是非抽象方法。【访问权限修饰符】abstractclass类名{//代码}二、抽象方法 只有抽象类才包含有抽象方法; 抽象方法的定义与使用;//抽象方法只是定义方法名称,无方法体,不干具体事的**定义抽象方法**[访问权限修饰符] abstract返回值类型抽象方法名(参数列表);//抽象方法只有派生...原创 2018-04-09 23:16:51 · 687 阅读 · 0 评论 -
7.接口和抽象类有什么区别
接口和抽象类有什么区别你选择使用接口和抽象类的依据是什么?接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.所以,在高级语言上,一个类只能继承一个类...原创 2018-04-09 23:37:32 · 2371 阅读 · 0 评论 -
8.组合与继承的差别
类继承与对象组合是实现类复用的两种最常用的技术。一:继承 继承是Is a 的关系,比如说Student继承Person,则说明Student is a Person。继承的优点是子类可以重写父类的方法来方便地实现对父类的扩展。 继承的缺点有以下几点: 1:父类的内部细节对子类是可见的。 2:子类从父类继承的方法在编译时就确定下来了,所以无法在运行期间改变从父类继承的方法的行为。 3:子类...原创 2018-04-10 00:11:58 · 447 阅读 · 0 评论 -
5.重写与重载
重写:子类覆盖方法必须和父类有相同的函数名和参数 返回值必须相同 抛出异常必须必须比父类异常范围小 子类方法访问权限必须比父类大重载:重载通过不同的方法参数来区分的:不同的参数个数、不同的参数类型、不同的参数顺序 不能通过方法的访问权限、返回值类型和抛出的异常类型来进行重载举例返回值类型不同参数类型不同...原创 2018-04-10 10:40:07 · 153 阅读 · 0 评论 -
12.访问权限符
在同包(packet)内,类中 protected 或 default 修饰的属性或方法可以被其对象外部访问,可以被子类继承。protected 或default 的访问级别与 public 相同。 在异包(不同的packet)内,类中 protected 修饰的属性或方法不可以被其对象外部访问,但是可以被子类继承(继承后protected和public都可以访问了)。类中 default 修饰的...原创 2018-04-10 11:02:56 · 287 阅读 · 0 评论 -
9.子类父类相互转换的关系
先上图,再解释哈。 1、子类转换成父类class A { public void func1() { System.out.println("Afunc1 is calling."); } public void func2() { func1(); }}class B extend A { public void fun...原创 2018-04-10 11:56:47 · 2520 阅读 · 1 评论 -
11.自动转型和强制转型
1.自动类型转换容量小的数据类型可以自动转换为容量大的数据类型; 容量指的是表数范围而不是字节数;图中,黑色实线箭头表示无数据丢失的自动类型转换,而红色虚线在转换时可能存在数据丢失。自动转型byte<short<char<int<long<float<doublebyte、short、char在运算时会转换成int,结果也是int。 特例:可以将整型常量直接赋值...原创 2018-04-10 13:16:13 · 2218 阅读 · 0 评论 -
10.JAVA的基本数据类型大小及自动拆装箱
java中,基本数据类型一共有8种,详细信息如下表:类型 大小 范围 默认值 byte 8 -128 - 127 0 short 16 -32768 – 32767 0 int 32 -2147483648-2147483647 0 long 64 -9233372036854477808-9233372036854477807 0 float 32 -3.402...原创 2018-04-10 13:35:06 · 685 阅读 · 0 评论 -
21.缓存淘汰算法--LRU算法
1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;3. 当链表满的时候,将链表尾部的数据丢弃...原创 2018-05-23 13:37:46 · 285 阅读 · 0 评论