
Java学习之旅
文章平均质量分 84
java基础学习
原来如此呀
慢慢学习,不断努力!!!
展开
-
三、Java数据结构与算法---线性表(顺序表)(讲解与代码)
1.顺序表1.1 顺序表的实现1.2 顺序表的遍历1.3 顺序表的容量可变1.4 顺序表的时间复杂度1.5 java中ArrayList实现原创 2021-08-10 10:44:46 · 426 阅读 · 1 评论 -
一、Java数据结构与算法---算法分析(讲解与代码)
算法分析1.1算法的时间复杂度分析计算算法时间耗费情况,分为①事后分析估算方法:使用System.currentTimeMillis()来得到该代码的运行所需时间。②事前分析估算方法:运行所消耗的时间取决于下列因素:1.算法采用的策略和方案;2.编译产生的代码质量;3.问题的输入规模(所谓的问题输入规模就是输入量的多少);4.机器执行指令的速度;下面展示一些 事后分析估算方法举例。public static void main(String[] args) { long start原创 2021-08-05 20:59:47 · 987 阅读 · 1 评论 -
二、Java数据结构与算法---排序(讲解与代码)
一、简单排序1.1 Comparable接口介绍在元素之间进行比较,而Java提供了一个接口Comparable就是用来定义排序规则的,在这里我们以案例的形式对Comparable接口做一个简单的回顾。(同时记住Comparator对应的定制排序方法)**需求:**1.定义一个学生类Student,具有年龄age和姓名username两个属性,并通过Comparable接口提供比较规则;2.定义测试类Test,在测试类Test中定义测试方法Comparable getMax(Comparable c原创 2021-08-09 09:40:37 · 345 阅读 · 0 评论 -
28.java中Java8.0的新特性(附讲解和练习)
Java 8新特性简介速度更快代码更少(增加了新的语法: Lambda 表达式)强大的 Stream API便于并行最大化减少空指针异常: OptionalNashorn引擎,允许在JVM上运行JS应用Lambda表达式Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。函数式(Functional)接口函数式(Funct原创 2021-08-04 21:51:41 · 1441 阅读 · 1 评论 -
27.java中反射机制(附讲解和练习)
Java反射机制概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后, 在堆内存的方法区中就产生了一个Class类型的对象( 一个类只有一个Class对象) , 这个对象就包含了完整的类的结构信息。 我们可以通过这个对象看到类的结构。 这个对象就像一面镜子, 透过这个镜子看到类的结构, 所以, 我们形象的称之为: 反射。 Java反射机制提供的功能在运行时判原创 2021-08-04 15:51:48 · 439 阅读 · 0 评论 -
26.java中网络编程(附讲解和练习)
网络编程概述Java提供的网络类库,可以实现无痛的网络连接,联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库, 程序员面对的是一个统一的网络编程环境。网络编程的目的:直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。网络编程中有两个主要的问题:》如何准确地定位网络上一台或多台主机;定位主机上的特定的应用》找到主机后如何可靠高效地进行数据传输网络通信要素概述网络编程中的两个要素:1.对应问题一:IP和端口号2.原创 2021-08-03 16:39:45 · 497 阅读 · 0 评论 -
25.java中IO流的应用---缓冲流、转换流以及对象流过程(附讲解和练习)
处理流之一:缓冲流 为了提高数据读写的速度, Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区。 缓冲流要“套接”在相应的节点流之上,根据数据操作单位可以把缓冲流分为:》BufferedInputStream 和 BufferedOutputStream》BufferedReader 和 BufferedWriter 当读取数据时,数据按块读入缓冲区,其后的读操作则直接访问缓冲区 当使用BufferedInput原创 2021-08-03 10:58:09 · 389 阅读 · 0 评论 -
24.java中IO流的应用---I/O流的概述及节点流过程(附讲解和练习)
IO流File类的使用File 类的使用 java.io.File类: 文件和文件目录路径的抽象表示形式,与平台无关 File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。 File对象可以作为参数传递给流的构造器File 类的使用:常用构造器 public原创 2021-08-02 19:28:33 · 244 阅读 · 0 评论 -
23.java中泛型的使用(附讲解和练习)
泛型泛型的定义 所谓泛型, 就是允许在定义类、 接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。 这个类型参数将在使用时(例如,继承或实现这个接口, 用这个类型声明变量、 创建对象时) 确定(即传入实际的类型参数, 也称为类型实参) 。 从JDK1.5以后, Java引入了“参数化类型( Parameterized type) ” 的概念,允许我们在创建集合时再指定集合元素的类型, 正如: List, 这表明该List只能保存字符串类型的对象。 JDK1.5改写了集合原创 2021-08-02 09:47:55 · 389 阅读 · 0 评论 -
22.java中的集合内容(附讲解和练习)
Java集合Java集合框架概述一、集合框架的概述1.集合、数组都是对多个数据进行存储操作的结构,简称Java容器。说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)2.1 数组在存储多个数据方面的特点:一旦初始化以后,其长度就确定了。数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如:String[] arr;int[] arr1;Object[] arr2;2.2 数组在存储多个数据方面的缺点:原创 2021-07-30 20:53:47 · 219 阅读 · 0 评论 -
21.java中的枚举类与注解(附讲解和练习)
枚举类与注解枚举类的使用主要内容: 如何自定义枚举类 如何使用关键字enum定义枚举类 Enum类的主要方法 实现接口的枚举类类的对象只有有限个,确定的。 举例如下: 星期: Monday(星期一)、 …、 Sunday(星期天) 性别: Man(男)、 Woman(女) 季节: Spring(春节)…Winter(冬天) 支付方式: Cash(现金)、 WeChatPay(微信)、 Alipay(支付宝)、 BankCard(银行卡)、 CreditCard(信用卡)原创 2021-07-27 16:29:24 · 328 阅读 · 0 评论 -
20.java中的常用类------Java比较器(附讲解和练习)
Java比较器 在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。Java实现对象排序的方式有两种: 自然排序: java.lang.Comparable 定制排序: java.util.Comparator一、说明:Java中的对象,正常情况下,只能进行比较:== 或 != 。不能使用 > 或 < 的但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小。如何实现?使用两个接口中的任何一个:Comparable 或 Comp原创 2021-07-26 15:43:33 · 309 阅读 · 0 评论 -
19.java中的常用类------日期时间的API(附讲解和练习)
日期时间的APIjdk 8之前的日期时间的API测试System类中currentTimeMillis();java.util.Date和子类java.sql.DateSimpleDateFormatCalendarjava.util.Date类|—java.sql.Date类1.两个构造器的使用>构造器一:Date():创建一个对应当前时间的Date对象>构造器二:创建指定毫秒数的Date对象2.两个方法的使用>toString():显示当前的年、月、日、时、原创 2021-07-26 15:09:58 · 522 阅读 · 0 评论 -
18.java中的常用类------字符串相关的类(附讲解和练习)
字符串相关的类String的特性 String类: 代表字符串。 Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。 String是一个final类,代表不可变的字符序列。(不可继承) 字符串是常量,用双引号引起来表示。 它们的值在创建之后不能更改。 String对象的字符内容是存储在一个字符数组value[]中的。String:字符串,使用一对""引起来表示。1.String声明为final的,不可被继承2.String实现了Serializable接口:原创 2021-07-25 22:34:40 · 471 阅读 · 0 评论 -
17.java中多线程(附讲解与练习)
基本概念:程序、进程、 线程程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程(process)是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。 ——生命周期》如:运行中的QQ,运行中的MP3播放器》程序是静态的,进程是动态的》进程作为资源分配的单位, 系统在运行时会为每个进程分配不同的内存区域线程(thread),进程可进一步细化为线程,是一个程序内部的一条执行路径。》若一个进程同原创 2021-07-22 21:45:55 · 642 阅读 · 0 评论 -
16.java中异常处理(附讲解与练习)
异常概述与异常体系结构 异常:在Java语言中, 将程序执行中发生的不正常情况称为“异常” 。(开发过程中的语法错误和逻辑错误不是异常) Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。 如: JVM系统内部错误、 资源耗尽等严重情况。 比如: StackOverflowError和OOM。 一般不编写针对性的代码进行处理。Exception: 其它因编程错误或偶然的外在因素导致的一般性问题, 可以使用针对性的代码进行处理。 例如:<原创 2021-07-16 22:06:15 · 333 阅读 · 0 评论 -
15.java中面向对象--接口和内部类(8)(附讲解与练习)
接口(interface) 一方面, 有时必须从几个类中派生出一个子类, 继承它们所有的属性和方法。 但是, Java不支持多重继承。 有了接口, 就可以得到多重继承的效果。另一方面, 有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有is-a的关系,仅仅是具有相同的行为特征而已。例如:鼠标、键盘、打印机、扫描仪、摄像头、充电器、 MP3机、手机、数码相机、移动硬盘等都支持USB连接。接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要…则必须能…”的思想。 继承是一个"是不原创 2021-07-16 13:24:27 · 271 阅读 · 0 评论 -
14.java中面向对象--抽象类与抽象方法(7)(附讲解与练习)
抽象类与抽象方法abstract关键字的使用1.abstract:抽象的2.abstract可以用来修饰的结构:类、方法abstract修饰类:抽象类此类不能实例化(创建不了对象,类中的方法仍可被子类调用)抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作abstract修饰方法:抽象方法抽象方法只有方法的声明,没有方法体包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的原创 2021-07-15 22:31:03 · 410 阅读 · 0 评论 -
13.java中面向对象--类的成员之四: 代码块(6)(附讲解与练习)
类的成员之四:代码块代码块的作用:用来初始化类、对象代码块如果有修饰的话,只能使用static.分类:静态代码块 vs 非静态代码块静态代码块内部可以有输出语句随着类的加载而执行,而且只执行一次作用:初始化类的信息如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行静态代码块的执行要优先于非静态代码块的执行静态代码块内只能调用静态的属性、静态的方法,不能调用非静态的结构非静态代码块内部可以有输出语句随着对象的创建而执行每创建一个对象,就执行一原创 2021-07-14 17:00:22 · 154 阅读 · 0 评论 -
12.java中面向对象--关键字Static、main方法等(5)(附讲解与练习)
关键字: static原创 2021-07-14 16:04:41 · 182 阅读 · 0 评论 -
11.java中面向对象--多态性(4)(附讲解与练习)
面向对象特征之三:多态性1.理解多态性:可以理解为一个事物的多种形态。2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)3.多态的使用虚拟方法调用有了对象的多念性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译,看左边;运行,看右边。4.多态性的使用前提:①类的继承关系②方法的重写5.对象的多态性,只适用于方法,不适用于属性(方法在子类中可以被重写)instanceof 操作符...原创 2021-07-13 22:31:12 · 711 阅读 · 0 评论 -
10.java中面向对象---继承性(3)(附讲解与练习)
面向对象特征之二:继承性多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。类继承语法规则:class Subclass extends SuperClass{ }一、继承性的好处1.减少了代码的冗余,提高了代码的复用性2.便于功能的扩展3.为之后多态性的使用,提供了前提二、继承性的格式:class A extends B{}A:子类、派生类、subclassB:父类、超类、基类、superclass体现:2.1一旦子原创 2021-07-12 21:09:44 · 594 阅读 · 0 评论 -
9.java中面向对象--封装性(2)(附讲解与练习)
面向对象特征之一:封装与隐藏程序设计追求“高内聚,低耦合”。 高内聚 :类的内部数据操作细节自己完成,不允许外部干涉; 低耦合 : 仅对外暴露少量的方法用于使用。隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说, 把该隐藏的隐藏起来,该暴露的暴露出来。 这就是封装性的设计思想。使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。1.问题的引入:当我们创建一个类的对象以后,我们可以通过"对象.属性"的方原创 2021-07-09 20:38:43 · 710 阅读 · 0 评论 -
8.java中面向对象---基础概念(1)(附讲解与练习)
学习面向对象内容的三条主线1.Java类及类的成员属性,方法,构造器,代码块,内部块2.面向对象的三大特征封装 (Encapsulation)继承 (Inheritance)多态 (Polymorphism)(抽象性)3.其它关键字this,super,static,final等关键字的使用面向过程(POP) 与 面向对象(OOP) 二者都是一种思想,面向对象是相对于面向过程而言的。面向过程, 强调的是功能行为,以函数为最小单位,考虑怎么做。 面向对象,将功能封装进对象, 强调原创 2021-07-07 22:00:17 · 394 阅读 · 0 评论 -
7.java的数组算法及应用(简单入门附练习代码)
数组中涉及到的常见算法:排序算法排序: 假设含有n个记录的序列为{R1, R2, …,Rn},其相应的关键字序列为{K1, K2, …,Kn}。将这些记录重新排序为{Ri1,Ri2,…,Rin},使得相应的关键字值满足条Ki1<=Ki2<=…<=Kin,这样的一种操作称为排序。 通常来说,排序的目的是快速查找。衡量排序算法的优劣:1.时间复杂度:分析关键字的比较次数和记录的移动次数;2.空间复杂度: 分析排序算法中需要多少辅助内存;3.稳定性: 若两个记录A和B的关键字值相等原创 2021-07-02 22:30:07 · 195 阅读 · 0 评论 -
6.java的数组简介(简单入门附练习代码)
数组的介绍数组(Array), 是多个相同类型数据按一定顺序排列的集合, 并使用一个名字命名, 并通过编号的方式对这些数据进行统一管理:1.数组的常见概念2.数组名3.下标(或索引)4.元素5.数组的长度:元素的个数数组的特点:数组是有序排列的。数组本身是引用数据类型, 而数组中的元素可以是任何数据类型, 包括基本数据类型和引用数据类型。1.创建数组对象会在内存中开辟一整块连续的空间, 而数组名中引用是这块连续空间的首地址。2. 数组的长度一旦确定, 就不能修改。3. 我们可以.原创 2021-07-02 22:06:43 · 426 阅读 · 0 评论 -
5.java的程序控制循环条件(嵌套循环)
嵌套循环一般不会超过三层!嵌套循环的使用1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,构成嵌套循环。2.外层循环B;内层循环A3.内层循环遍历一遍,相当于外层循环运行一次。4.外层循环控制行数内层循环控制列数。嵌套循环(多重循环)1.将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环或内层循环。2. 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循原创 2021-06-29 15:51:00 · 1707 阅读 · 0 评论 -
4.java的程序控制循环条件(While循环)
1.语法格式①初始化部分while(②循环条件部分){③循环体部分;④迭代部分;}2.执行过程:①-②-③-④-②-③-④-②-③-④-…-②3.说明:注意不要忘记声明④迭代部分。 否则, 循环将不能结束, 变成死循环。for循环和while循环可以相互转换。算法要注重:有限性。i出了while循环依旧有效。...原创 2021-06-28 14:29:34 · 1733 阅读 · 0 评论 -
4.java的程序控制循环条件(For循环)
循环语句的四个组成部分1.初始化部分(init_statement)2.循环条件部分(test_exp)3.循环体部分(body_statement)4.迭代部分(alter_statement)1.语法格式for (①初始化部分; ②循环条件部分(boolean类型); ④迭代部分){③循环体部分;}2.执行过程:①-②-③-④-②-③-④-②-③-④-…-②3. 说明: ②循环条件部分为boolean类型表达式,当值为false时,退出循环 ①初始化部分可以声明多个变量,原创 2021-06-28 10:52:53 · 661 阅读 · 0 评论 -
4.Java的程序流程控制Swich-case
Swich-case控制条件内容等价于==原创 2021-06-28 09:26:43 · 223 阅读 · 0 评论 -
4.Java的程序流程控制If-else
这里写目录标题程序流程控制程序流程控制流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:顺序结构分支结构循环结构1.顺序结构程序从上到下逐行地执行,中间没有任何判断和跳转。2.分支结构根据条件,选择性地执行某段代码。有if…else和switch-case两种分支语句。3.循环结构根据循环条件,重复性的执行某段代码。有while、 do…while、 for三种循环语原创 2021-06-26 22:23:39 · 296 阅读 · 0 评论 -
3.Java的基本语法1.1
2.4运算符运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。1. 算术运算符2. 赋值运算符3. 比较运算符(关系运算符)4. 逻辑运算符5. 位运算符6. 三元运算符下面展示一些 内联代码片。class AriTest {public static void main(String[] args) {//除号:/int num1 = 12;int num2 = 5;int result1 = num1 / num2;System.out.println(resul原创 2021-06-24 22:31:16 · 155 阅读 · 0 评论 -
2.Java基础语法1.0
2.1关键字和保留字Java中的保留字:现有的版本中尚未使用,后续版本可能成为关键字(goto、const)2.2标识符:/*标识符的使用1.标识符:凡是可以自己起名字的地方都叫做标识符比如:类名、变量等2.定义合法标识符规则:—》如果不遵守以下规则,编译无法通过**>由26个英文字母大小写, 0-9 , _或 $ 组成数字不可以开头。不可以使用关键字和保留字,但能包含关键字和保留字。Java中严格区分大小写,长度无限制。标识符不能包含空格。**3.Java中的名称命原创 2021-06-24 22:07:38 · 158 阅读 · 0 评论 -
Java学习概述
Java学习重点和难点常用的Win+R, cmd命令符dir:directory目录md:make directoryrd:remove directorycd:change directoryJava的主要应用领域:Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性, 增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间。Java虚拟机JVM可以使得不同系统上构建的代码程序能够实现跨平原创 2021-06-24 21:50:39 · 185 阅读 · 0 评论