自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(92)
  • 收藏
  • 关注

原创 10.4-全栈Java笔记:常用流详解(二)

上节我们讲到「Java中常用流:文件字节流和字节数组流」,本节我们继续走起~ 缓冲流BufferedInputStream和BufferedOutputStream这两个流是处理流,通过内部缓存数组来提高操作流的效率。【示例1】使用缓冲流实现文件的高效率复制操作public class Demo06 {       public static voi

2017-06-30 09:51:59 244

原创 10.3-全栈Java笔记:常用流详解(一)

 文件字节流FileInputStream通过字节的方式读取文件,适合读取所有类型文件(图像、视频、文本文件等)。Java也提供了FileReader专门读取文本文件。 FileOutputStream 通过字节的方式写数据到文件,适合所有类型文件。Java也提供了FileWriter专门写入文本文件。 【示例1】将文件内容读取到程序中。 import 

2017-06-30 09:50:39 224

原创 10.2-全栈Java笔记:最全面的IO技术(二)

上节我们聊到「IO技术概念及入门」这节我们继续聊一下IO技术的分类。Java中流的概念细分按流的方向分类:输入流:数据流向是数据源到程序(InputStream、Reader结尾的流)输出流:数据流向是程序到目的地(OutPutStream、Writer结尾的流)按处理的数据单元:字节流:按照字节读取数据(InputStream、OutputStre

2017-06-29 10:46:12 495

原创 10.1-全栈Java笔记:最全面的IO技术(一)

IO技术对于任何程序设计语言而言,输入输出(Input/Output)系统都是非常核心的功能。程序运行需要数据,数据的获取往往需要跟外部系统进行通信,外部系统可能是文件、数据库、其他程序、网络、IO设备等等。外部系统比较复杂多变,那么我们有必要通过某种手段进行抽象、屏蔽外部的差异,从而实现更加便捷的编程。输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是“读

2017-06-29 10:41:32 965

原创 9.9-全栈Java笔记:遍历集合的N种方式总结&Collections工具类

遍历集合的N种方式总结【示例1】遍历List方法1,使用普通for循环for(int i=0;i//list为集合的对象名    String temp = (String)list.get(i);    System.out.println(temp);}【示例2】遍历List方法2,使用增强for循环(使用

2017-06-29 10:38:34 647

原创 9.8-全栈Java笔记:Iterator(迭代器)接口

迭代器介绍所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象。Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。Iterator接口定义了如下方法:boolean hasNext();  //判断是否有元素没有被遍历Object next();      //返回游标当前位置

2017-06-29 10:36:38 446

原创 9.7-全栈Java笔记:Set接口和实现类

Set接口Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致。我们在前面通过List学习的方法,在Set中仍然试用。因此,学习Set的使用将没有任何难度。  Set容器表示:无序、不可重复。无序表示Set中的元素没有索引,我们只能遍历查找;不可重复表示:不允许加入重复的元素。更确切地讲,新元素如果和Set中某个元素通过eq

2017-06-29 10:34:17 558

原创 9.6-全栈Java笔记:二叉树和红黑二叉树

二叉树的定义二叉树是树形结构的一个重要类型。 许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树(BinaryTree)由一个结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。下图中展现了五种不同基本形态的二叉树。(a) 为空树

2017-06-29 10:28:25 558

原创 9.5-全栈Java笔记:Map接口中的实现类HashMap

上节聊到「Map接口和实现类」,今天我们深入探讨其实现类中的HashMap如何进行底层实现。Hashmap基本结构讲解哈希表的基本结构就是“数组+链表”。我们打开HashMap源码,发现有如下两个核心内容:public class   HashMap    extends   AbstractMap    implements

2017-06-29 10:23:48 376

原创 9.4-全栈Java笔记:Map接口和实现类

现实生活中,我们经常需要成对存储某些信息。比如,我们使用的微信,一个手机号只能对应一个微信账户。这就是一种成对存储的关系。Map就是用来存储“键(key)-值(value) 对”。  Map类中存储的“键值对”通过键来标识,所以“键对象”不能重复。 Map 接口的实现类有:HashMap、TreeMap、HashTable、Properties等。 常用的方法:

2017-06-29 10:21:29 287

原创 9.3-全栈Java笔记:List接口常用实现类的特点和底层实现

上节我们讲到「List接口的特点和常用方法」,本节接着上节的内容继续深入学习。课前回顾: List接口常用的实现类有3个:ArrayList、LinkedList、Vector。那么它们的特点和底层实现有哪些呢?ArrayList特点和底层实现ArrayList底层是用数组实现的存储。特点:查询效率高,增删效率低,

2017-06-29 10:15:39 598

原创 9.2-全栈Java笔记:List接口的特点和常用方法

List特点和常用方法List是有序、可重复的容器。有序指的是:List中每个元素都有索引标记。可以根据元素的索引标记(在List中的位置)访问元素,从而精确控制这些元素。可重复指的是:List允许加入重复的元素。更确切地讲,List通常允许满足e1.equals(e2) 的元素重复加入容器; 除了Collection接口中的方法,List多了一些跟顺序(索引)有关

2017-06-29 10:12:19 246

原创 9.1-全栈Java笔记: 容器&泛型—认识Collection接口

开发和学习中需要时刻和数据打交道,如果组织这些数据是我们编程中重要的内容。 我们一般通过“容器”来容纳和管理数据。 事实上,数组就是一种容器,可以在其中放置对象或基本类型数据。数组的优势:是一种简单的线性序列,可以快速的访问数组元素,效率高。如果从效率和类型检查的角度讲,数组是最好的。数组的劣势:不灵活:容量事先定义好,不能随着需求的变化而扩容。比如:我

2017-06-28 11:38:10 310

原创 8.6-全栈Java笔记:Math类和枚举

Math类java.lang.Math提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。如果需要更加强大的数学运算能力,计算高等数学中的相关内容,可以使用apache commons下面的Math类库。 常用方法: abs 绝对值 acos,asin,atan,cos,sin,tan sqrt 平方根 pow(dou

2017-06-28 11:37:16 270

原创 8.5-全栈Java笔记:File类基本用法

File类  File类的基本用法java.io.File类:代表文件和目录。 在开发中,读取文件、生成文件、修改文件时经常会用到本类。 File类的常见构造方法:public File(String pathname)以pathname为路径创建File对象,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。

2017-06-28 11:33:09 216

原创 8.4-全栈Java笔记:时间处理相关类(下)

上节我们聊到了「时间格式化字符」,实际上它也为我们提供其他的便利。    比如:获得当前时间是今年的第几天。代码如下:public class   Test {    public static void   main(String[] args) {       SimpleDateFormat s1 = new   SimpleD

2017-06-28 11:31:13 251

原创 8.3-全栈Java笔记:时间处理相关类(上)

时间处理相关类“时间如流水,一去不复返”,时间是一个一维的东东。所以,我们需要一把刻度尺来区表达和度量时间。在计算机世界,我们把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)。我们用long类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:    lo

2017-06-28 11:28:22 380

原创 8.2-全栈Java笔记:字符串相关类(String/StringBuilder /StringBuffer)

字符串相关类(String/StringBuilder /StringBuffer)String类String 类对象代表不可变的Unicode字符序列。 什么叫做“不可变的对象”?指的是对象内部的成员变量的值无法再改变。我们打开String类的源码:我们发现字符串内容全部存储到value[]数组中,而且是final类型,也就是常量(即只能被赋值一次

2017-06-28 11:24:42 378

原创 8.1-全栈Java笔记:基本数据类型的包装类

基本数据类型的包装类包装类基本知识Java是面向对象的语言,但不是“纯面向对象”,基本数据类型就不是对象。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。 比如:Object[]数组、集合的操作中。为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数据类型对应的类统称为包装类(Wrapper Class)。 

2017-06-28 11:20:48 304

原创 7.4-全栈Java笔记:三种经典算法

冒泡排序算法冒泡排序是最常用的排序算法,在笔试中也非常常见,能手写出冒泡排序算法可以说是基本的素养。算法重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样越大的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.  对每一对相邻元素作同样的工作,从

2017-06-28 11:17:10 391

原创 7.3-全栈Java笔记:多维数组的应用及数组存储表格数据

多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。 【示例1】二维数组的声明public class Test{    public static void main(String[] args) {       //Java中多维数组的

2017-06-28 11:13:12 397

原创 7.2-全栈Java笔记:数组常见的操作

数组常见操作数组的遍历数组元素下标的合法区间:[0, length-1]。我们可以通过下标来遍历数组中的元素,遍历时可以读取元素的值或者修改元素的值。【示例1】 使用循环遍历初始化和读取数组public class   Test {    public static void   main(String[] args) {

2017-06-28 11:05:39 282

原创 7.1-全栈Java笔记:数组的概念和初始化

数组概述和特点数组的定义:数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个下标来访问它们。数组的三个基本特点:1.长度是确定的。数组一旦被创建,它的大小就是不可以改变的。2. 其元素必须是相同类型,不允许出现混合类型。3. 数组类型可以是任何数据类型,包括基本类型和引用类型

2017-06-27 13:44:05 281

原创 6.4-全栈Java笔记:异常处理办法(下)

自定义异常在程序中,可能会遇到任何标准异常类都没有充分的描述清楚的问题,这种情况下可以创建自己的异常类。从Exception类或者它的子类派生一个子类即可 。习惯上,定义的类应该包含2个构造器:一个是默认的构造器,另一个是带有详细信息的构造器。【示例1】自定义异常类class    IllegalAgeException      extends   E

2017-06-27 13:42:30 316

原创 6.3-全栈Java笔记:异常处理方法(上)

异常的处理办法之一  捕获异常图1 异常处理 上面过程详细解析:1.try块:try语句指定了一段代码,该段代码就是一次捕获并处理的范围。在执行过程中,当任意一条语句产生异常时,就会跳过该段中后面的代码。代码中可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。一个try语句必须带有至少一个catch语句块或一个fi

2017-06-27 13:37:52 290

原创 6.2-全栈Java笔记:异常处理机制的分类

异常分类JDK 中定义了很多异常类,这些类对应了各种各样可能出现的异常事件,所有异常对象都是派生于Throwable类的一个实例。如果内置的异常类不能够满足需要,还可以创建自己的异常类。 图1 异常的分类 ErrorError类层次描述了Java运行时系统内部错误和资源耗尽错误。这类错误是我们无法控制的,同时也是非常罕见的错误。所以在编程中,不去处理这类错误。E

2017-06-27 11:42:16 269

原创 6.1-全栈Java笔记:异常处理机制的概念

异常问题实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了等等。 软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫异常,英文是:Exception,意思是例外。这些,例外情况,或者叫

2017-06-27 11:35:21 194

原创 5.7-全栈Java笔记:字符串String的常用方法

字符串StringString基础1)String位于java.lang包中,Java程序默认导入java.lang包。2)ava字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J、a、v、a组成的。3)Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个

2017-06-27 11:18:21 589

原创 5.6-全栈Java笔记:内部类的四种实现方式

一般情况,我们把类定义成独立的单元。有些情况下,我们把一个类放在另一个类的内部定义,称为内部类(innerclasses)。内部类的作用1.内部类提供了更好的封装。只能让外部类直接访问,不允许同一个包中的其他类直接访问。2.内部类可以直接访问外部类的私有属性,内部类被当成其外部类的成员。 但外部类不能访问内部类的内部属性。内部类的使用场合由于内部类提供了更好

2017-06-27 11:06:32 1164

原创 5.5-全栈Java笔记:接口的定义和使用

接口interface接口的作用为什么需要接口?接口和抽象类的区别?接口就是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行约束。全面地专业地实现了:规范和具体实现的分离。抽象类还提供某些具体实现,接口不提供任何实现,接口中所有方法都是抽象方法。接口是完全面向规范的,规定了一批类具有的公共方法规范。从接口的实现者角度看,接口定义了可以向外部提供的

2017-06-27 11:02:26 731

原创 5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类

对象的转型(casting)引用变量只能调用它编译类型的方法,不能调用它运行类型的方法。这时,我们就需要进行类型的强制转换!【示例1】对象的转型public class   TestCasting {    public static void   main(String[] args) {       Object obj = new   String

2017-06-27 11:00:03 669

原创 5.3-全栈Java笔记:面向对象特征(二)封装、多态

封装(encapsulation)封装的作用和含义我要看电视,只需要按一下开关和换台就可以了。有必要了解电视机内部的结构吗?有必要碰碰显像管吗?制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体怎么内部实现的,我们不需要操心。 需要让用户知道的暴露出来,不需要让用户了解的全部隐藏起来。这就是封装。 我们程序设计要

2017-06-27 09:19:41 532

原创 5.2-全栈Java笔记:面向对象的特征(一)继承 | 下

上节我们聊到「Java面向对象的特征:继承」这节我们继续聊一下继承的应用。Object类Object类基本特性Object类是所有Java类的根基类,也就意味着所有的JAVA对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。【示例1】Object类public class Perso

2017-06-26 10:20:38 411

原创 5.1-全栈Java笔记:面向对象的特征(一)继承 | 上

JAVA面向对象进阶本章重点针对面向对象的三大特征:继承、封装、多态,进行详细的讲解。很多概念对于初学者来说,更多的是先进行语法性质的了解,不要期望,通过本章学习就“搞透面向对象”。本章只是面向对象的起点,后面所有的章节说白了都是面向对象这一章的应用。老鸟建议建议大家,学习本章,莫停留!学完以后,迅速开展后面的章节。可以说这么说,以后所有的编程都是“面向对象”的

2017-06-26 10:14:48 549

原创 4.8-全栈Java笔记:包机制

包机制是java中管理类的重要手段。 开发中,我们会遇到大量同名的类,通过包我们很容易对解决类重名的问题,也可以实现对类的有效管理。 包对于类,相当于,文件夹对于文件的作用。package我们通过package实现对类的管理,package的使用有两个要点:1.通常是类的第一句非注释性语句。2.包名:域名倒着写即可,再加上模块名,便于内部管理类。【示例1】package

2017-06-26 09:56:39 508

原创 4.7-全栈Java笔记:静态初始模块与参数传值机制

静态初始化块构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能访问非static成员。静态初始化块执行顺序(学完继承再看这里):上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。构造方法执行顺序和上面顺序一样!! 【示例1】static初

2017-06-26 09:47:26 539

原创 4.6-全栈Java笔记:THIS关键字和STATIC关键字

this关键字对象创建的过程和this的本质构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回了该类的对象,但这个对象并不是完全由构造器负责创建的。创建一个对象分为如下四步:1. 分配对象空间,并将对象成员变量初始化为0或空2. 执行属性值的显示初始化3. 执行构造方法4. 返回对象的地址给相关的变量 this的本质就是“创

2017-06-26 09:40:23 356

原创 4.5-全栈Java笔记:垃圾回收机制

垃圾回收机制(Garbage  Collection)Java引入了垃圾回收机制,令C++程序员最头疼的内存管理问题迎刃而解。JAVA程序员可以将更多的精力放到业务逻辑上而不是内存管理工作上,大大的提高了开发效率。垃圾回收原理和算法1)内存管理Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放。对象空间的分配:使用new关键字创建对象即可对象

2017-06-26 09:33:54 565

原创 4.4-全栈Java笔记:构造方法与构造方法的重载

构造方法构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。 声明格式:[修饰符] 类名(形参列表){    //n条语句}要点:1)通过new关

2017-06-26 09:30:06 531

原创 4.3-全栈Java笔记:面向对象的内存分析

面向对象的内存分析为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到“心中有数”,通过更加形象的方式理解程序的执行方式。老鸟建议:        本节是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程、Class对象。大家暂时可以不求甚解的了解,后期学了这两个概念再回头来

2017-06-26 09:23:32 536

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除