自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java基础:44 Collection接口

1、Collection 接口介绍(1)Collection 接口是 List、 Set 和 Queue 接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 和 Queue 集合。(2)JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如: Set和List)实现。(3)在 Java5 之前, Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成 Object 类型处理; 从 JDK 5.0 增加了泛型以后, Java 集合可以记住容器中对象的数据类型

2020-07-25 20:49:50 171

原创 Java基础:43 集合框架概述

1、集合的引入(1)数组在存储数据方面的弊端:数组初始化以后,长度就不可变了,不便于扩展。数组中提供的属性和方法少,不便于进行添加、删除、插入等操作, 且效率不高。同时无法直接获取存储元素的个数。数组存储的数据是有序的、可以重复的。存储数据单一。(2)面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组2、集

2020-07-22 23:39:13 108

原创 Java基础:42 算法

六、算法6.1.算法概述算法简单来说就是解决问题的步骤。  在Java中,算法通常都是由类的方法来实现的。前面的数据结构,比如链表为啥插入、删除快,而查找慢,平衡的二叉树插入、删除、查找都快,这都是实现这些数据结构的算法所造成的。逻辑结构和存储结构都相同, 但运算不同, 则数据结构不同. 例如, 栈与队列对于一种数据结构, 常见的运算插入删除修改查找排序算法的五个特征①、有穷性:对于任意一组合法输入值,在执行又穷步骤之后一定能结束,即:算法中的每个步骤都能在有限时间内完成。②、确定

2020-07-21 12:38:18 425

原创 Java基础:41 树结构

1、树介绍树的常用术语(结合示意图理解):节点:根节点 、父节点、子节点 、叶子节点(没有子节点的节点)、节点的权(节点值)路径(从root节点找到该节点的路线)层子树树的高度(最大层数)森林 :多颗子树构成森林2、二叉树的概念树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。二叉树的子节点分为左节点和右节点。如果该二叉树的所有叶子节点都在最后一层,并且结点总数= 2n -1 , n 为层数,则我们称为满二叉树。如果该二叉树的所有叶子节点都在最后一层或者倒数第

2020-07-20 22:56:43 229

原创 Java基础:40 链表

1、链表介绍链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。链表通常由一连串节点组成,每个节点包含任意的实例数据(data fields)和一或两个用来指向上一个/或下一个节点的位置的链接(“links”)。使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空

2020-07-20 18:22:14 86

原创 Java基础:39 队列

1、队列介绍队列是一种先进先出(FIFO) 的线性表. 在表一端插入,在另一端删除定义:只能在表的一端(队尾)进行插入,在另一端(队头)进行删除运算的线性表。逻辑结构:与线性表相同,仍为一对一关系。存储结构:用顺序队列或链队存储均可。运算规则:先进先出(FIFO)。实现方式:关键是编写入队和出队函数,具体实现依顺序队或链队的不同而不同。存储方式:线性表有顺序存储和链式存储,队列是一种特殊的线性表,同样也存在这两种存储方式。2、队列的顺序存储(1)顺序队列的“假溢出”:上图中,fro

2020-07-20 17:36:04 92

原创 Java基础:38 栈

1、栈介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。5)出栈(pop)和入栈(push)如图所示。2、栈的应用场景

2020-07-20 16:42:48 159 1

原创 Java基础:37 数据结构和算法内容介绍

1、数据结构和算法的重要性算法是程序的灵魂,优秀的程序可以在海量数据计算时,依然保持高速计算一般来讲 程序会使用了内存计算框架(比如Spark)和缓存技术(比如Redis等)来优化程序,再深入的思考一下,这些计算框架和缓存技术, 它的核心功能是哪个部分拿实际工作经历来说, 在Unix下开发服务器程序,功能是要支持上千万人同时在线, 在上线前,做内测,一切OK,可上线后,服务器就支撑不住了,,公司的CTO对代码进行优化,再次上线,坚如磐石。你就能感受到程序是有灵魂的,就是算法。目前程序员面试的门槛越

2020-07-19 23:22:36 127

原创 Java基础:36 其他常用API

1、System类(1)System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包。(2)由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。(3)成员变量:System类内部包含in、out和err三个成员变量,分别代表标准输入流 (键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。(4)成员方法native long currentTim

2020-07-19 22:41:06 86

原创 Java基础:35 日期时间API

1、世界时间标准计算世界时间的主要标准有:UTC(Coordinated Universal Time) 协调世界时协调世界时(英:Coordinated Universal Time),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。世界标准时间UTC:GMT+0GMT(Greenwich Mean Time) 格林尼治平时世界时UT 即格林尼治时间,格林尼治所在地的标准时间。以地球自转为基础的时间计量系统。地球自转的角度可用

2020-07-19 15:18:04 154

原创 Java基础:34 字符串相关的类(3)——StringBuilder

1、StringBuilder类的特性StringBuilder 和 StringBuffer 非常类似,均代表可变的字符序列,而且提供相关功能的方法也一样对比String、StringBuffer、StringBuilder:String(JDK1.0):不可变字符序列StringBuffer(JDK1.0):可变字符序列、效率低、线程安全StringBuilder(JDK 5.0):可变字符序列、效率高、线程不安全注意:作为参数传递的话,方法内部String不会改变其值,StringBu

2020-07-18 22:03:37 78

原创 Java基础:33 字符串相关的类(2)——StringBuffer

1、StringBuffer的特性java.lang.StringBuffer代表可变的字符序列,JDK1.0中声明,可以对字符 串内容进行增删,此时不会产生新的对象。很多方法与String相同。作为参数传递时,方法内部可以改变值。2、对象声明StringBuffer类不同于String,其对象必须使用构造器生成。有三个构造器:StringBuffer():初始容量为16的字符串缓冲区 StringBuffer(int size):构造指定容量的字符串缓冲区 StringBuffer(

2020-07-18 21:22:39 64

原创 Java基础:32 字符串相关的类(1)——String

1、String的特性String类:代表字符串。字符串是常量,用双引号引起来表示。Java程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。String是一个final类,代表不可变的字符序列。它们的值在创建之后不能更改。String对象的字符内容是存储在一个字符数组value[]中的。2、String对象的创建String提供了多个构造方法。public String(); //初始化一个空字符序列。public String(String otiginal); /

2020-07-18 20:04:10 135

原创 Java基础:31 API

1、API 和类库(1)API:Java 语言中,已经提供了大量的类库供程序开发者使用,这些类库是 Java 语言提供的、已经写好的、用来实现常见的和通用的功能的类的集合,我们称之为“应用程序编程接口(API-Application Program Interface)”。(2)类库:API 根据实现的功能不同,划分为不同的集合,每个集合组成一个包,称为类库。常用的类一般位于java.lang包下,不需要导包。(3)在我们下载和安装的 JDK 中,已经包含了这些基础的 API 类库。在编程时,如

2020-07-15 10:38:30 209

原创 Java基础:30 异常

1、异常概述与异常体系结构异常:在Java语言中,将程序执行中发生的不正常情况称为“异常” (开发过程中的语法错误和逻辑错误不是异常) 。Java程序在执行过程中所发生的异常事件可分为两类:(1)Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError(暂存溢出)和OOM。一般不编写针对性的代码进行处理。(2)Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访

2020-07-14 22:33:45 187

原创 Java基础:29 内部类

1、类的内部成员之五: 内部类当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类。在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者 称为外部类。Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完 整的名称。Inner class的名字不能与包含它的外部类类名相同分类:成员内部类(static成员内部类和非static成员内部类)局部内部类(不谈修饰符)

2020-07-13 17:26:31 209

原创 Java基础:28 接口

1、接口(interface)在抽象类中,抽象方法本质上是定义接口规范:即规定高层类的接口,从而保证所有子类都有相同的接口实现。如果一个抽象类没有字段,所有方法全部都是抽象方法,就可以把该抽象类改写为接口(interface)。在Java中,使用interface可以声明一个接口:interface Person { void run(); String getName();}接口的本质是契约,标准,规范,就像法律一样。接口(interface)是抽象方法和常量值定义的集合。

2020-07-11 23:14:30 110

原创 Java基础:27 模板方法设计模式

1、 模板方法设计模式(TemplateMethod)抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。解决的问题:当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以 把不确定的部分暴露出去,让子类去实现。换句话说,在软件开发中实现一个算法时,整体步骤很固定、通用, 这些步骤已经在父类中写好了。但是某些部分易变,易变部分可以抽 象出来,供不同子类实现。这就是一种模板模式。Demo1需求:计算代码执行

2020-07-11 16:56:01 79

原创 Java基础:26 抽象

1、抽象方法和抽象类(1)由于多态的存在,每个子类都可以覆写父类的方法,但是,如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法:class 类名 { public abstract void 方法名();}当一个方法声明为abstract,表示它是一个抽象方法,本身没有实现任何方法语句。因为这个抽象方法本身是无法执行的,所以,该类也无法被实例化。编译器会告诉我们,无法编译该类,因为它包含抽象方法。必须把该类本身也声明

2020-07-11 16:21:55 116

原创 Java基础:25 final

1、关键字:final在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。final标记的类不能被继承。提高安全性,提高程序的可读性。final标记的方法不能被子类重写。final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋值,然后才能使用。2、final修饰类final class A{ } class B extends A{ //错误,不能被继承。 }3、

2020-07-11 11:12:04 62

原创 Java基础:24 代码块

1、类的成员之四: 代码块(1)类有五大成员:属性、构造方法、一般方法、块、内部类(2)代码块(或初始化块)的作用: 对Java类或对象进行初始化(3)代码块(或初始化块)的分类:一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块(static block)没有使用static修饰的,为非静态代码块2、静态代码块用static修饰的代码块,通常用于初始化static的属性可以有输出语句。可以对类的属性、类的声明进行初始化操作。不可以对非静态的属性初始化,,即:不可以

2020-07-11 10:33:53 97

原创 Java基础:22 static

1、关键字:static(1)作用:在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块。static的主要作用在于创建独立于具体对象的域变量或者方法。(2)使用范围: 在Java类中,可用static修饰属性、方法、代码块、内部类(3)被修饰后的成员具备以下特点:随着类的加载而加载优先于对象存在修饰的成员,被所有对象所共享访问权限允许时,可不创建对象,直接被类调用class Circle { private doub

2020-07-10 16:07:19 79

原创 Java基础:23 单例设计模式

1、单例(Singleton)设计模式设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、 以及解决问题的思考方式。所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生 类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个

2020-07-10 00:33:50 50

原创 Java基础:21 包装类的使用

针对八种基本数据类型定义相应的引用类型—包装类(封装类)有了类的特点,就可以调用类中的方法,Java才是真正的面向对象。基本数据类型包装成包装类的实例 —装箱通过包装类的构造器实现:int i = 500; Integer t = new Integer(i); 通过字符串参数构造包装类对象:Float f = new Float(“4.56”); Long l = new Long(“asdf”); //NumberFormatException 获得包装类对象中包装的基本

2020-07-07 20:36:15 107

原创 Java基础:20 重载(overload)和重写(override) 的区别

1、方法重载的规则:方法名一致,参数列表中参数的顺序、类型、个数不同。重载与方法的返回值无关,存在于父类和子类、同类中。可以抛出不同的异常,可以有不同修饰符。2、方法重写的规则:参数列表必须完全与被重写方法的一致,返回类型必须完全与被重写方法的返回类型-致。构造方法不能被重写,声明为final的方法不能被重写,声明为static的方法不能被重写,但是能够被再次声明。访问权限不能比父类中被重写的方法的访问权限更低。重写的方法能够抛出任何非强制异常(Uncheck

2020-07-06 23:55:36 91

原创 Java基础:19 面向对象的特征(3)——多态

5、 重载(overload)和重写(override) 的区别(1)方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中, 同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同),则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。(2)方法重载的规则:方法名一

2020-07-06 23:49:47 770

原创 Java基础:18 面向对象的特征(2)——继承

1、

2020-07-06 15:26:52 90

原创 Java基础:17 面向对象特征(1)——封装

1、封装的作用和含义

2019-12-22 19:42:44 103

原创 Java基础:16 Java类和对象

1、类和对象类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。面向对象开发(OOA)就是不断的创建对象,使用对象,指挥对象做事情。面向对象设计(OOD)其实就是在管理和维护对象之间的关系。面向对象特征:封装(encapsulation)、继承(inherit...

2019-12-19 21:36:41 87

原创 Java基础:15 面向过程与面向对象

1、面向过程与面向对象区别二者都是一种思想,面向对象是相对于面向过程而言的。面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等。面向过程是一种是事件为中心的编程思想。一般是先分析出解决问题所需的...

2019-12-10 20:22:47 89

原创 Java基础:14 JVM内存

1、JVM内存JVM在执行Java程序时,会把它管理的内存划分为若干个的区域,每个区域都有自己的用途和创建销毁时间,可以分为两大部分,线程私有区和共享区2、线程私有区程序计数器:当同时进行的线程数超过CPU数或其内核数时,就要通过时间片轮询分派CPU的时间资源,不免发生线程切换。这时,每个线程就需要一个属于自己的计数器来记录下一条要运行的指令。Java虚拟机栈:描述Java方法执行的内存...

2019-12-10 19:44:00 106

原创 Java基础:13 方法

1、方法的定义方法指的是完成特定功能的代码块,代码块就是使用{}括起来一段代码。定义形式:方法的访问修饰符 方法的返回值类型 方法名称(方法的形参——包括参数类型和参数名称,多个参数使用逗号分隔){方法体——方法完成功能的代码;}方法定义的时候,所定义的形参称为形式参数,简称形参,形参也分为有和没有;当使用方法的时候,传入的参数称为实际参数,简称实参。2、方法的返回值如果方...

2019-12-10 19:36:22 188

原创 Java基础:12 数组的常见引用(2)——排序算法

1、算法概述(1)排序的目的是快速查找(2)衡量排序算法的优劣:时间复杂度:分析关键字的比较次数和记录的移动次数空间复杂度:分析排序算法中需要多少辅助内存稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保 持不变,则称这种排序算法是稳定的。(3)排序算法分类:内部排序和外部排序。内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排 序操作都在内存中完...

2019-11-27 19:17:24 152

原创 Java基础:11 数组的常见应用(1)

1、 数组元素的赋值(杨辉三角等)//打印n层的杨辉三角import java.util.Scanner;public class YangHui { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入要打印的层数:"); ...

2019-11-26 20:43:30 74

原创 Java基础:10 数组

1、数据的存储变量:每一个变量只能存储一种类型的一个数据int i = 10;数组:可以存储同种类型的多个数据一维数组、二维数组、多维数组(不使用)2、一维数组...

2019-11-25 12:42:17 467

原创 Java基础:09 eclipse的安装和使用

1、高级IDE工具:eclipse、IDEA2、eclipse的安装解压 :解压目录:不要解压在中文目录 含有特殊字符的目录 目录的路径不宜过深执行:选中eclipse.exe,右键发送到桌面3、eclipse的使用设置工作空间:workspace——>新建eclipse——>launch 创建工程:file——>new——>java project——...

2019-11-24 20:54:18 170

原创 Java基础:08 流程控制

(1)类型:顺序、选择、循环(2)顺序结构顺序结构规定了java中代码的执行顺序,自上而下,依次逐句执行(3)选择结构表达式:将数据、变量、使用运算符按一定的规矩拼接起来,形成表达式表达式类型:指的是表达式计算后结果的类型if-else:如果其后只有有且只有一条执行语句,可以省略{}(约定:自己写代码时,哪怕只有一条语句,都不能省略{})输入语句:import java.util....

2019-11-24 20:24:51 76

原创 Java基础:07 运算符

1、类型算数运算符、逻辑运算符、赋值运算符、关系运算符、比较运算符、位运算符、三元运算符2、算数运算符+、-、、\、%、++、–等运算中,byte、int、short的运算结果为int型运算中,long类型存在,结果为long类型在整数类型及char类型做运算的时候,如果操作数是byte、short、char,结果为int型如果操作数含int型,结果为int型如果操作数含long...

2019-11-12 22:53:39 99

原创 Java基础:06 进制

1、类型二进制:0、1,直接表示八进制:0~7,前加0十进制:0~9,直接表示十六进制:09、af,前加0x2、二进制表示方式:原码、反码、补码正数:三者一样负数:反码为原码数据位按位取反,补码为反码+1原码、反码、补码存在的原因:计算机无法识别符号位,所以存在原码、反码、补码三种形式,而且符号位参与运算,故计 算机只有加法没有减法3、进制转换十进制转换为二进制:取余法十进制...

2019-11-12 22:27:40 157

原创 Java基础:05 数据类型转换

1、转换规则char byte short可以转换为int,不可相互转换int可以转换为long,在末尾加Lfloat可以直接转换为double整数型最好不要转化为浮点型浮点型转化为整数型会舍弃小数部分小范围类型数据可以赋值给大范围数据类型,反之则可能损失数据布尔类型占一个字节空间 true/false --> 1/0,理论上一位(bit)即可存储,但分配的存储空间最小为一个...

2019-11-12 22:25:20 167

空空如也

空空如也

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

TA关注的人

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