java 基础
文章平均质量分 78
qq_30272539
这个作者很懒,什么都没留下…
展开
-
java 核心内容(22) LinkList
1、概述 LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。 LinkedList实现所有可选的列表操作,并允许所有的元素包转载 2018-01-11 09:18:33 · 253 阅读 · 0 评论 -
java核心内容(11) 代码块
在编程过程中我们可能会遇到如下这种形式的程序:public class Test { { //// }} 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起,形成一个独立的数据体,用于实现特定的算法。一般来说代码块是不能单独运行的,它必须要有运行主体。在Java中代码块主要分为四种:1、普通代码块转载 2018-01-06 12:34:25 · 182 阅读 · 0 评论 -
java核心内容(12)equal 方法
超类Object中有这个equals()方法,该方法主要用于比较两个对象是否相等。该方法的源码如下:public boolean equals(Object obj) { return (this == obj); } 我们知道所有的对象都拥有标识(内存地址)和状态(数据),同时“==”比较两个对象的的内存地址,所以说使用Object的equals()方法是比较转载 2018-01-06 13:52:21 · 1047 阅读 · 2 评论 -
java 核心学习(13) String
1、String 类 我们要明确,String并不是基本数据类型,而是一个对象,并且是不可变的对象。查看源码就会发现String类为final型的(当然也不可被继承),而且通过查看JDK文档会发现几乎每一个修改String对象的操作,实际上都是创建了一个全新的String对象。 字符串为对象,那么在初始化之前,它的值为null,到这里就有必要提下””、null、n转载 2018-01-06 15:12:44 · 117 阅读 · 0 评论 -
java 核心学习(14) final 关键字
在程序设计中,我们有时可能希望某些数据是不能够改变的,这个时候final就有用武之地了。final是java的关键字,它所表示的是“这部分是无法修改的”。不想被改变的原因有两个:效率、设计。使用到final的有三种情况:数据、方法、类。1、final 修饰成员变量有时候数据的恒定不变是很有用的,它能够减轻系统运行时的负担。对于这些恒定不变的数据我可以叫做“常量”。“常量”主要应用与以下两个转载 2018-01-07 14:30:15 · 154 阅读 · 0 评论 -
java学习核心(2) java 三大特性继承
1、什么是java中的继承继承在本职上是特殊——一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的方法和属性。主要是用于代码的复用。2、java 继承的理解public class Husband { private String name; private int age; private String sex转载 2018-01-03 15:50:25 · 183 阅读 · 0 评论 -
java 核心学习 (15) 四舍五入
四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例:public static void main(String[] args) { System.out.println("12.5的四舍五入值:" + Math.round(12.5)); System.out.println(转载 2018-01-07 15:41:43 · 169 阅读 · 0 评论 -
java 核心学习(16) 异常处理机制
java 基本概念“结构不佳的程序不能够运行” 大成若缺,其用不弊。 大盈若冲,其用不穷。 在这个世界不可能存在完美的东西,不管完美的思维有多么缜密,细心,我们都不可能考虑所有的因素,这就是所谓的智者千虑必有一失。同样的道理,计算机的世界也是不完美的,异常情况随时都会发生,我们所需要做的就是避免那些能够避免的异常,处理那些不能避免的异常。这里我将记录如何利用异常转载 2018-01-08 21:08:38 · 195 阅读 · 0 评论 -
java 核心内容(17) 自定义异常
Java确实给我们提供了非常多的异常,但是异常体系是不可能预见所有的希望加以报告的错误,所以Java允许我们自定义异常来表现程序中可能会遇到的特定问题,总之就是一句话:我们不必拘泥于Java中已有的异常类型。 Java自定义异常的使用要经历如下四个步骤: 1、定义一个类继承Throwable或其子类。 2、添加构造方法(当然也可以不用添加转载 2018-01-09 14:35:17 · 161 阅读 · 0 评论 -
java 核心学习(19)数组2
1、性能优先使用数组? 在java中有很多方式来存储一系列数据,而且在操作上面比数组方便的多?但为什么我们还需要使用数组,而不是替代它呢?数组与其他种类的容器之间的区别有三个方面:效率、类型和保存基本类型的能力。在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。 在项目设计中数组使用的越来越少了,而且它确实是没有List、Set这些集合使用方便,但是在某些转载 2018-01-10 09:53:41 · 116 阅读 · 0 评论 -
java 核心学习(20) 集合
在编写java程序中,我们最常用的除了八种基本数据类型,String对象外还有一个集合类,在我们的的程序中到处充斥着集合类的身影!java中集合大家族的成员实在是太丰富了,有常用的ArrayList、HashMap、HashSet,也有不常用的Stack、Queue,有线程安全的Vector、HashTable,也有线程不安全的LinkedList、TreeMap等等!上面的图转载 2018-01-10 13:15:42 · 129 阅读 · 0 评论 -
java 核心内容()数组拷贝的两种方法
1、system提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。public static void arraycopy(Object src, int srcPos, Object dest,原创 2018-01-10 16:13:13 · 180 阅读 · 0 评论 -
java核心学习(10) 强制类型的转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。转载 2018-01-06 12:08:15 · 149 阅读 · 0 评论 -
java核心学习(9)详解匿名内部类
在java提高篇-----详解内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客。在这篇博客中你可以了解到匿名内部类的使用、匿名内部类要注意的事项、如何初始化匿名内部类、匿名内部类使用的形参为何要为final。1、使用匿名内部类的内部类 匿名内部类由于没有名字,所以它的创建方式有点儿奇怪。创建格式如下:new 父类构造器(参数列表)|实现接口()转载 2018-01-06 11:10:34 · 214 阅读 · 0 评论 -
java 核心学习(23) hashMap
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。1、定义 HashMap实现了Map接口,继承Abstr转载 2018-01-11 13:53:31 · 172 阅读 · 0 评论 -
java核心学习(24) hashSet
在前篇博文中(java提高篇(二三)-----HashMap)详细讲解了HashMap的实现过程,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素。所以如果对HashMap比较熟悉,那么HashSet是so easy!!1、定义public class HashSet extends AbstractSet implements转载 2018-01-11 16:17:02 · 93 阅读 · 0 评论 -
java 核心学习 (25)hashTable
有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,value)方法保存起来,然后通过get(key)方法获取相对应的value值。一个是前面提到的HashMap,还有一个就是马上要讲解的HashTable。对于HashTable而言,它在很大程度上和HashMap的实现差不多,如果我们对HashMap比较了解的话,对Has转载 2018-01-11 16:55:53 · 136 阅读 · 0 评论 -
java学习核心(1) java 三大特性封装
1、什么是java中的封装?简单的说就是包装,专业点就是信息的隐藏。封装是指隐藏数据 的属性和实现的细节,仅仅对外提供接口。2、java封装的优点1、便于使用者,正确方便,理解和使用该系统,防止使用者错误的修改属性。举例:现在的电视机,电视机里面的实现细节特别复杂,但是对于我们使用者,只需要使用遥控器几个按钮就可以控制。电视机的实现细节隐藏在大盒子里面,没有必要向用户公开。原创 2018-01-03 11:31:34 · 396 阅读 · 0 评论 -
java学习核心(3)java 三大特性多态
1、什么是多态?面向对象编程有三大特性:封装、继承、多态。 封装是指隐藏数据 的属性和实现的细节,仅仅对外提供接口。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。同时继承也为实现多态做了铺垫。那么什么是多态呢?多态的实现机制又是什么?请看我一一为你揭开: 多态是指程序中定义的引用类型变量所指向的具体类型和通过该引用变量调用方转载 2018-01-03 18:35:58 · 221 阅读 · 0 评论 -
java学习核心(4) 接口和抽象类
1、前言 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。2、抽象类 我们都道在面向对象的领域一切都是对象,同时所有的对象,都是通过类来描述的,但是不是所有的类是用来描述对象的,如果一个类没有足够的信息是用来描述转载 2018-01-04 11:41:08 · 110 阅读 · 0 评论 -
java核心学习(26) hashCode
在前面三篇博文中LZ讲解了(HashMap、HashSet、HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最精华的部分,所以下面LZ揭开hashCode的“神秘”面纱。1、hashCode 的作用? 要想了解一个方法的内在原理,我们首先需要明白它是干什么的,也就是这个方法的作用。在讲解数组时(ja转载 2018-01-13 12:11:20 · 117 阅读 · 0 评论 -
java核心学习(5)序列化实现深拷贝操作
我们知道在Java中存在这个接口Cloneable,实现该接口的类都会具备被拷贝的能力,同时拷贝是在内存中进行,在性能方面比我们直接通过new生成对象来的快,特别是在大对象的生成上,使得性能的提升非常明显。然而我们知道拷贝分为深拷贝和浅拷贝之分,但是浅拷贝存在对象属性拷贝不彻底问题。1、浅拷贝public class Person implements Cloneable{ /**转载 2018-01-04 18:55:56 · 1025 阅读 · 0 评论 -
java核心学习(6)static 关键字
1、什么是static ? 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在Java中static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,当然也可以修饰代码块。 Java把内存分为栈内存和堆内存,其中栈内存用来存放一些基本类型的变量、数组和对象的引用,堆内存主要存放一些对象。在JVM加载一个类转载 2018-01-05 10:25:20 · 92 阅读 · 0 评论 -
java 核心学习(7) 内部类
1、什么是内部类?可以将一个类的定义放在另一个类的定义内部,这就是内部类。public class OuterClass { private String name ; private int age; public String getName() { return name; } public void setName(Str转载 2018-01-05 11:45:34 · 143 阅读 · 0 评论 -
java核心学习(8)多继承
1、什么是多继承? 多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的设计,这个时候我们往往需要思考的不是怎么使用多重继承,而是您的设计是否存在问题.但有时候我们确实是需要实现多重继承,而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和转载 2018-01-06 10:40:02 · 206 阅读 · 0 评论 -
java核心内容(21) ArrayList
1、ArrayList概述 ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量为10。随着ArrayL转载 2018-01-10 15:43:24 · 129 阅读 · 0 评论