自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

任性的生鱼片 的博客

生命不息,战斗不止!

  • 博客(52)
  • 收藏
  • 关注

原创 JAVA学习笔记:目录

目录java学习笔记1:了解java、JDK、JRE、JVMjava学习笔记2:JDK下载和安装以及测试控制台测试是否配置成功java学习笔记3:用记事本写第一个java程序,第一个java程序常见错误总结,第一个java程序详细解析java学习笔记4:常见的DOS命令和java开发工具java学习笔记5:eclipse的下载及使用,以及java程序的运行java学习笔记6:注释、标识...

2018-12-28 21:26:38 1900

原创 博文系列【java学习笔记】改动日志

日期:20181205【更新】java学习笔记1:了解java、JDK、JRE、JVM

2018-12-05 00:22:33 240

原创 java学习笔记49:容器

一、容器       开发和学习中需要时刻和数据打交道,如何组织这些数据是我们编程中重要的内容。 我们一般通过“容器”来容纳和管理数据。那什么是“容器”呢?生活中的容器不难理解,是用来容纳物体的,如锅碗瓢盆、箱子和包等。程序中的“容器”也有类似的功能,就是用来容纳和管理数据。    事实上,我们所学的数组就是一种容器,可以...

2019-03-27 23:44:21 203

原创 java学习笔记48:异常的处理方式:捕获异常(try...catch...)、抛出异常(声明异常(throws子句)),利用百度解决异常问题,手动抛出异常:自定义异常

一、捕获异常(try,catch,finally)捕获异常是通过3个关键词来实现的:try-catch-finally。用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它,最后一步是通过finally语句为异常处理提供一个统一的出口,finally所指定的代码都要被执行(catch语句可有多条;finally语句最多只能有一条,根据自己的需要可有...

2019-03-27 02:01:27 1785

原创 java学习笔记47:运行时异常RuntimeException、已检查异常CheckedException

一、运行时异常RuntimeException派生于RuntimeException的异常,如被 0 除、数组下标越界、空指针等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。 因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。  这类异常通常是由编程错误导致的,所以在编写程序时,并不要求必须使用异常处理机制来处理这类异常,经常需要通过...

2019-03-26 00:58:36 967

原创 java学习笔记46:异常机制、异常分类、Error异常、Exception异常

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

2019-03-25 23:13:06 280

原创 java学习笔记45:枚举

       JDK1.5引入了枚举类型。枚举类型的定义包括枚举声明和枚举体。格式如下: enum 枚举名 { 枚举体(常量列表) }枚举体就是放置一些常量。我们可以写出我们的第一个枚举类型,如下示例所示:示例:创建枚举类型enum Season { SPR...

2019-03-14 00:17:57 416

原创 java学习笔记44:File类的基本用法、递归打印目录树结构(递归遍历目录结构和树状展现)

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

2019-03-14 00:02:21 1069

原创 java学习笔记43:Math类、Random类

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

2019-03-13 22:48:54 265

原创 java学习笔记42:Calendar类和GregorianCalendar类的使用、可视化日历的编写

       Calendar 类是一个抽象类,为我们提供了关于日期计算的相关功能,比如:年、月、日、时、分、秒的展示和计算。  GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统。菜鸟雷区  注意月份的表示,一月是0,二月是1,以此类推,12月是11。

2019-03-13 01:02:49 1069

原创 java学习笔记41:Date时间类及jdk源码分析、DateFormat类和SimpleDateFormat类

一、Date时间类注:把1970 年 1 月 1 日 00:00:00定为基准时间,每个度量单位是毫秒(1秒的千分之一)  用long类型的变量来表示时间,从基准时间往前几亿年,往后几亿年都能表示。如果想获得现在时刻的“时刻数值”,可以使用:  long now = System.currentTimeMillis();这个“时刻数值”是所有时间类的核心值,年月日都是根据这个“数值”计...

2019-03-11 23:53:52 286

原创 java学习笔记40:String类、StringBuild和Stringbuffer、不可变和可变字符序列使用的陷阱

一、String类       String类对象代表不可变的Unicode字符序列,因此我们可以将String对象称为“不可变对象”。  那什么叫做“不可变对象”呢?指的是对象内部的成员变量的值无法再改变。打开String类的源码,如下图所示:  我们发现字符串内容全部存储到value[]数组中,而变量value是f...

2019-03-08 00:05:57 572

原创 java学习笔记39:自动装箱和拆箱、空指针问题、包装类的缓存问题

一、自动装箱和拆箱       自动装箱和拆箱就是将基本数据类型和包装类之间进行自动的互相转换。  JDK1.5后,Java引入了自动装箱(autoboxing)/拆箱(unboxing)。  自动装箱:  基本类型的数据处于需要对象的环境中时,会自动转为“对象”。  我们以Integer为例:在JDK1.5以前,这...

2019-03-01 01:02:57 489

原创 java学习笔记38:包装类:基础及使用

一、包装类基础        Java是面向对象的语言,但并不是“纯面向对象”的,因为我们经常用到的基本数据类型就不是对象。但是我们在实际应用中经常需要将基本数据转化成对象,以便于操作。比如:将基本数据类型存储到Object[]数组或集合中的操作等等。  为了解决这个不足,Java在设计类时为每个基

2019-02-27 00:03:11 202

原创 java学习笔记37:冒泡排序的基础算法和优化算法、二分法查找

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

2019-02-14 03:28:04 541

原创 java学习笔记36:多维数组的声明及内存分析、动静态初始化、获取二维数组的长度、数组存储表格数据

多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。示例:二维数组的声明public class Test { public static void main(String[] args) { //Java中多维数组的声明和初始化应按从低维到高维的顺序进行 int[][]...

2019-02-14 02:10:44 414

原创 java学习笔记35:Arrays工具类的使用:打印、排序、二分法查找元素、填充(替换)

JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。示例:Arrays工具类的使用:打印数组package test;import java.util.Arrays;public class TestArrays { public static void main(String[] a...

2019-02-14 01:38:03 541

原创 java学习笔记34:数组的拷贝、插入和删除元素本质、数组扩容操作

数组的拷贝System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素。注:容器的底层...

2019-02-14 00:09:58 484 1

原创 java学习笔记33:String类及常用方法、常量池、阅读API文档、字符串的相等判断及内存分析

一、String基础1、String类又称作不可变字符序列。2、 String位于java.lang包中,Java程序默认导入java.lang包下的所有类。3、Java字符串就是Unicode字符序列,例如字符串“Java”就是4个Unicode字符’J’、’a’、’v’、’a’组成的。4、Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义的类String,每个用双引...

2019-02-12 23:53:05 258

原创 java学习笔记32:内部类:静态和非静态内部类、匿名内部类、方法内部类

一、内部类内部类(innerclasses):把一个类放在另一个类的内部定义    内部类可以使用public、default、protected 、private以及static修饰。而外部顶级类(我们以前接触的类)只能使用public和default修饰。注意  内部类只是一个编译时概念,一旦我们编译成功,就会成为完全不同的两个类。对于一个名为Outer的外部类和其内部定义的名为In...

2019-02-06 13:54:43 802 2

原创 java学习笔记31:接口、多继承、面向接口编程

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

2019-02-05 22:15:33 225

原创 java学习笔记30:抽象类、抽象方法

一、抽象方法使用abstract修饰的方法,没有方法体,只有声明。包好抽象方法的类必须是抽象类。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。二、抽象类包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。三、抽象类和抽象方法的基本用法/** * *...

2019-02-05 20:39:36 201

原创 java学习笔记29:数组的概念和特点、数组的声明、内存状态、初始化和遍历、数组越界异常、for-each增强for循环

一、数组的概念和特点1、数组的定义  数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。  注:数组是有序的。(根据索引下标排序,从零开始)2、数组的三个基本特点: 1. 长度是确定的。数组一旦被创建,它的大小就是不可以改变的。 2. 其元素必须是相同类型,不允...

2019-01-30 01:02:14 396

原创 java学习笔记28:final关键字:修饰变量、方法和类

final关键字的作用:修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。 final int MAX_SPEED = 120;修饰方法:该方法不可被子类重写。但是可以被重载! final void study(){}修饰类: 修饰的类不能被继承。比如:Math、String等。 final class...

2019-01-29 18:59:33 316

原创 java学习笔记27:对象的转型:向上自动转型、向下强制转型

1、对象的转型向上转型:父类引用指向子类对象,属于自动类型转换。向下转型:向上转型后的父类引用变量只能调用它编译类型的方法,不能调用它运行时类型的方法。这时,我们就需要进行类型的强制转换,我们称之为向下转型!2、示例:对象的转型public class TestCasting { public static void main(String[] args) { Ob...

2019-01-29 18:48:28 829

原创 java学习笔记26:多态、多态的三个必要条件

多态(polymorphism)1、多态指的是同一个方法调用,由于对象不同可能会有不同的行为。现实生活中,同一个方法,具体实现会完全不同。  比如:同样是调用人的“休息”方法,张三是睡觉,李四是旅游,高淇老师是敲代码,数学教授是做数学题;同样是调用人“吃饭”的方法,中国人用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。2、多态的要点: 1. 多态是方法的多态,不是属性的多态(多态与属性无关...

2019-01-29 17:59:52 1195

原创 java学习笔记25:封装的作用和含义、封装的实现--使用访问控制符、封装的使用细节

注:面向对象的三大特征:封装、继承、多态。一、封装的作用和含义1、封装:把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。  如:看电视。我们只需要知道如何使用电视机和遥控器,会开关机和换台即可,不需要触碰电视机内部。制造厂家为了方便我们使用电视,把复杂的内部细节全部封装起来,只给我们暴露简单的接口,比如:电源开关。具体内部是怎么实现的,我们不需要操心。  需要让用户...

2019-01-23 23:59:44 554

原创 java学习笔记24:super关键字、继承树追溯

一、super关键字1、super父类对象引用  super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。  使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。    若是构造方法的第一行代码没有显式的调用super(…)或者this(…);那么Java默认都会调用super(),含义是调用父类的无参数构造方法。这里的super()可以省略...

2019-01-23 18:34:41 227

原创 java学习笔记23:==和equals()方法的区别、equals方法的重写、阅读Object和String的源码

一、“==”和equals()方法的区别以及equals()方法的重写1、“= =”和equals()方法“==”代表比较双方是否相同。  如果是基本类型则表示值相等;  如果是引用类型则表示地址相等即是同一个对象。    Object类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。比如,我们在公安系统中认为id相同的...

2019-01-23 17:13:19 226

原创 java学习笔记22:Object类的用法、toString()方法

一、Object类1、Object类基本特性  Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。  如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。  (Object类位于java的lang包(核心包)内)  注:Object所有方法子类都有,可以直接用2、示例public class Perso...

2019-01-23 11:52:34 321

原创 java学习笔记21:方法的重写override

1、方法的重写:继承关系中,子类通过重写父类的方法,可以用自身的行为替换父类的行为。注:方法的重写是实现多态的必要条件。2、方法的重写需要符合下面的三个要点: “==”: 方法名、形参列表相同。 “≤”:返回值类型和声明异常类型,子类小于等于父类。 “≥”: 访问权限,子类大于等于父类。3、示例:方法的重写public class TestOverride { p...

2019-01-21 18:15:58 228

原创 java学习笔记20:继承、instanceof运算符

面向对象的三大特征:继承、封装、多态。一、继承1、继承的实现  继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels)。  从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如:  上图中,哺乳动物继承了动物。意味着...

2019-01-21 17:06:39 230

原创 java学习笔记19:import详解、静态导入详解

一、导入类import       如果我们要使用其他包的类,需要使用import导入,从而可以在本类中直接通过类名来调用,否则就需要书写类的完整包名和类名。  import导入包后,便于编写代码,提高可维护性。注意:  1、Java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。  2、如果导入...

2019-01-21 12:02:58 437

原创 java学习笔记18:java包机制、package的使用、JDK提供的常见包的作用

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

2019-01-21 11:22:55 414

原创 java学习笔记17:java的参数传值机制

Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。1、基本数据类型参数的传值  传递的是值的副本。  副本改变不会影响原件。2、引用类型参数的传值  传递的是值的副本。  但是引用类型指的是“对象的地址”。  因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值,...

2019-01-18 18:08:36 339

原创 java学习笔记16:this关键字的本质、对象创建过程的四步、static关键字

一、对象创建的过程和this的本质this用于普通的方法和构造器,代表当前的对象       构造方法是创建Java对象的重要途径,通过new关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。    创建一个对象分为如下四步: 

2019-01-17 23:16:20 334

原创 java学习笔记15:垃圾回收机制(Garbage Collection)、垃圾回收原理和算法、通用的分代垃圾回收机制、JVM调优和Full GC、开发中容易造成内存泄露的操作

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

2019-01-17 18:08:06 686

原创 java学习笔记14:构造方法详解、构造方法重载

一、构造方法1、构造器也叫构造方法(constructor),用于对象的初始化。  注:构造器也是方法,方法的特性也适用于构造方法。    要点:    1、通过new关键字调用;    2、构造器虽然有返回值,但是 不能定义返回值类型(返回值类型肯定是本类),不能在构造器里使用return返回某个值;    3、如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数;   ...

2019-01-17 14:51:49 391

原创 java学习笔记13:内存分析详解_栈_堆_方法区_栈帧_程序执行的内存变化过程

一、面向对象的内存分析java虚拟机的内存可以分为三个区域:    &amp

2019-01-01 21:44:49 955

原创 java学习笔记12:面向过程和面向对象、类

一、面向过程和面向对象 面向对象和面向过程都是对软件分析、设计和开发的一种思想,是相辅相成的、不是对立的关系。 它指导着人们以不同的方式去分析、设计和开发软件。 面向过程:思考如何一步一步完成,如“学开车”。适合简单、不需要协作的事务。 面向对象(object):思考复杂、需要协作的事务。如“如何造车”,无法分为1.2.3.4等步骤。适合...

2018-12-24 22:37:16 237

空空如也

空空如也

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

TA关注的人

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