![](https://img-blog.csdnimg.cn/20210127152628231.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 79
Java基础学习。
Bennett_gxd
这个作者很懒,什么都没留下…
展开
-
第十六章 网络编程(1.1)
网络编程计算机网络之间以何种规则进行通信,就是网络模型研究的问题。网络模型一般是指OSI(Open System Interconnection 开放系统互连)参考模型。TCP/IP协议ISO(国际标准委员会组织,将数据的传递从逻辑上划分为7个层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层)当发送消息时,需要按照从应用层–物理层的次序,将内容进行层层加包,然后发送出去。接受消息时,需要按照从物理层–应用层的次序,将内容进行层层拆包,然后解析出来信息。常见协议:htt原创 2021-10-25 22:57:19 · 77 阅读 · 0 评论 -
第十四章 Java多线程(1.2)
多线程的常见问题总结)售票问题两线程死锁问题1a2b3c问题售票问题多个线程访问同一个资源时会发生死锁问题。package com.bennett.test1024;/** * @Version: 1.0 * @Description:售票问题 * @Author: bennett * @Date: 2021年10月25日 下午9:23:23 */public class TicketThread { public static void main(String[] args) {原创 2021-10-25 22:08:03 · 135 阅读 · 0 评论 -
第十四章 多线程的常用练习
多线程的常用练习利用多线程复制文件,并对比单线程和多线程的性能countDownLatchRandomAccessFile介绍RandomAccessFile中的方法利用多线程复制文件,并对比单线程和多线程的性能CopyFilesByRunnableDemopackage com.bennett.test1012;import java.io.IOException;import java.io.RandomAccessFile;import java.util.concurrent.Coun原创 2021-10-12 16:15:37 · 152 阅读 · 0 评论 -
第十二章 Java集合的常用操作(1.7)
Java集合的常用练习集合的常见操作1、复制集合集合的常见操作1、复制集合package com.bennett.test1010;import java.util.Arrays;import java.util.Collections;import java.util.LinkedList;import java.util.List;public class CopyListTest { public static void main(String[] args) {// 原集合原创 2021-10-10 21:40:52 · 103 阅读 · 0 评论 -
第十五章 Java正则表达式
Java正则表达式Java 正则表达式和 Perl 的是最为相似的。java.util.regex 包主要包括以下三个类:Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有原创 2021-10-06 19:33:06 · 65 阅读 · 0 评论 -
第十四章 Java 多线程(1.1)
第十四章 Java 多线程一、进程与线程二、线程的生命周期三、创建线程四、守护线程五、线程同步六、线程间通信原创 2021-08-31 09:28:03 · 162 阅读 · 0 评论 -
第十三章 Java 文件与流
第十三章 Java 文件与流原创 2021-08-31 09:27:01 · 691 阅读 · 0 评论 -
第十二章 操作集合的Collections工具类(1.6)
操作集合的Collections工具类操作集合的Collections工具类操作集合的Collections工具类java.util.Collections类,是一个常用于操作集合的工具类,与java.util.Arrays类似的,该类中也提供了一系列的静态方法,可以完成如集合创建、集合拷贝、集合元素排序等、获取集合中的最值等功能,其中部分是泛型方法。java.util.Collections类中的一些常用API如下:方法 返回值 方法说明emptyList() List 返回空列表,此空列表是不原创 2021-08-31 09:25:31 · 182 阅读 · 0 评论 -
第十二章 比较器(1.5)
比较器 Comparable和Comparator1、比较器的概念比较器,顾名思义,是在比较的时候需要用到的一种工具。其最主要的作用是用来实现对象的比较逻辑,解决对象在需要排序的情况下孰先孰后这一问题。2、Comparable接口之前的内容中介绍了java.util.TreeSet类,了解到java.util.TreeSet集合在保存元素时会对元素进行比较并按照自然的方式对元素进行排序,并且演示了在一个java.util.TreeSet集合中存储多个java.lang.Integer类的对象后元素是原创 2021-08-31 09:26:29 · 308 阅读 · 0 评论 -
第十二章 迭代器 Iterator(1.4)
迭代器 Iterator迭代器 Iterator1、迭代器的概念2、Iterator接口迭代器 Iterator1、迭代器的概念在编写代码的过程中,常常需要将数组或集合中的元素逐个访问一遍,即遍历,这个过程也被称作迭代,迭代器即是在这一过程中使用的一种工具。2、Iterator接口对于集合的迭代,除了前文中使用的for循环或For-Each循环(加强型循环)外,Java还提供了java.util.Iterator接口作为迭代器,同样可以完成遍历集合的任务。java.util.Iterator接口原创 2021-08-31 09:24:54 · 104 阅读 · 0 评论 -
第十二章 Map(1.3)
Java集合框架之Map1、Map接口相关继承关系2、Map接口2.1、HashMap类2.2、Hashtable类2.3、TreeMap类原创 2021-08-30 20:03:07 · 162 阅读 · 0 评论 -
第十二章 Collection(1.2)
Java集合 — Collection(1.2)二、 Collection2.1、Collection接口相关继承关系2.2、List接口2.2.1、ArrayList类2.2.2、Vector类2.2.3、LinkedList类2.3、Set接口2.3.1、HashSet类2.3.2、TreeSet类二、 CollectionJDK中在java.util包下提供了一组类库,用以实现集合这一数据存储结构,作为容器,用以存储、处理大量对象。这些由JDK提供的集合主要围绕着Collection接口和Map接原创 2021-08-30 19:51:40 · 162 阅读 · 0 评论 -
第十二章 Java集合(1.1)
第十二章 Java集合一、 集合框架1.1、集合的概念一、 集合框架1.1、集合的概念计算机的优势在于处理大量的数据,在编程开发中,为存储、处理大量的数据,必须具备相应的存储结构,数组也是可以用来存储处理大量类型相同的数据,但是数组有长度、数据类型的限制,操作不方便。在实际开发过程中,为了使大量数据的存储和处理更加方便,便衍生了集合这一概念。集合是一种存储数据个数不受限制、操作方式更灵活的数据存储结构。集合内部持有若干其他对象的引用,并对外提供访问接口。对开发人员来说,集合就像一个容器,内部存放了若干原创 2021-08-30 19:45:31 · 113 阅读 · 0 评论 -
第十一章 Java数字处理类(1.2)
数字处理类一、数字处理类1.1、java.text.NumberFormat1.2、java.text.DecimalFormat1.3、java.lang.Math1.4、java.math.BigInteger1.5、java.math.BigDecimal一、数字处理类Java中提供了丰富的类库,帮助开发人员进行数学运算、数字格式化等与数字处理有关的操作。1.1、java.text.NumberFormat在JDK提供的java.text包下,有一个NumberFormat类,该类提供了丰富的原创 2021-08-30 19:56:27 · 390 阅读 · 0 评论 -
第十一章 Java 包装类(1.1)
第十一章 Java 包装类和数字处理一、Java中的包装类1、基本数据类型与其包装类Java是一种面向对象的编程语言,但是Java中的基本数据类型却不是面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,Java为每个基本数据类型设计了一个对应的类,这些和基本数据类型一一对应的类(共8个)统称为包装类(Wrapper Class)。包装类均位于java.lang包下,包装类和基本数据类型的对应关系如下表所示:基本数据类型 包装类boolean java.lang.Booleancha原创 2021-08-30 19:36:13 · 128 阅读 · 0 评论 -
第十章 Java 日期和时间
第十章 Java 日期和时间在Java.util包中提供了许多工具类,包含集合框架、事件模型、日期和时间设施、国际化的各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包。在软件开发过程中,这些工具类使用十分频繁。在开发软件系统时,不可避免的都会遇到一类数据,即日期和时间,比如一个用户的注册时间、一条订单的下单时间、一篇文章的发布时间等等。针对日期和时间的处理能力对任何一门编程语言来说都是必不原创 2021-08-26 16:29:03 · 296 阅读 · 0 评论 -
第九章 Java 异常和错误
第九章 Java 异常和错误一、Java中的异常与错误二、异常一、Java中的异常与错误1、什么是异常与错误大多数情况下,程序运行过程中不可能一帆风顺,不可避免的会出现一些非正常的现象,比如用户输入了非法数据、程序要读取的文件并不存在、某一步运算出现除数是0的情况、访问的数组下标越界了、网络临时中断、甚至内存不够用而产生内存溢出等等。引起这些非正常现象的原因不一而足,有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的。如果程序中出现了非正常的现象而没有得到及时的处理,程序可原创 2021-08-26 09:21:24 · 280 阅读 · 0 评论 -
第八章 封装、继承和多态及this,super,final,static关键字
第八章 Java 面向对象的特性一、继承二、封装三、多态一、继承1、继承的概念1.1、生活中的继承面向对象的方法论告诉我们,在认识世界的过程中,万事万物皆为对象,对象按状态和行为可以归类。而在现实世界中进行对象的归类时,会发现类与类之间也经常存在包含与从属的关系。比如将笔记本电脑与台式电脑分别归类,而笔记本电脑和台式电脑又都属于电脑,图示如下:笔记本电脑和台式电脑都具有电脑的一般特征,但同时又具有各自不同的特征;笔记本电脑、台式电脑相对于电脑要更加具体,而电脑相对于笔记本电脑或台式电脑要更加通用原创 2021-08-25 23:01:28 · 310 阅读 · 0 评论 -
第七章 Java 接口
第七章 Java 接口一、接口(interface)1.1、接口(interface)1.2、声明和使用接口(interface)1.3、接口(interface)和抽象类的异同一、接口(interface)1.1、接口(interface)在前面的章节中,已经介绍过API(应用程序编程接口)的概念,API即是在编程过程中,应用之间进行信息交换的媒介(或者理解为方式、渠道、手段等等)。另外也提到,当声明一个方法时,方法头(方法声明)对于开发人员来说即是一个API。更进一步说, 前文中提到的抽象方法对开原创 2021-07-23 21:04:09 · 806 阅读 · 0 评论 -
第六章 构造方法、变量的作用域和生命周期(1.6)
第六章 构造方法、变量的作用域和生命周期(1.6)七、构造方法八、变量的作用域和生命周期8.1、变量的作用域8.2、变量的生命周期七、构造方法类中有一种特殊的方法,其方法名与类名相同,没有返回值类型,这种方法叫构造方法,也叫构造函数或构造器。实例:public class Student {// 声明成员变量String name; // 姓名int age; // 年龄String studentNo; // 学号// 声明方法// 没有参数的构造方法public Student原创 2021-07-10 08:25:34 · 133 阅读 · 0 评论 -
第六章 方法的重载(1.5)
第六章 方法的重载(1.5)六、方法的重载六、方法的重载在一个类中,多个方法具有相同的方法名称,但却具有不同的参数列表,与返回值无关,称作方法重载(overload)。实例:修改后的MathUtils类部分源码:public class MathUtils {/*** 将两个整数相乘并返回结果* @param num1 第一个参与相乘的整数* @param num2 第二个参与相乘的整数* @return 相乘的结果*/public int multiply(int num1, in原创 2021-07-10 08:06:52 · 156 阅读 · 0 评论 -
第六章 方法的返参数(1.4)
第六章 方法的返参数(1.4)五、方法的参数5.1、方法传参5.2、方法传参时基本数据类型和引用数据类型的内存变化5.3、方法的可变参数五、方法的参数5.1、方法传参方法的参数即调用方法时主调方法依据被调方法声明的参数列表传递给被调方法的数据。调用方法时,主调方法中传入的参数称之为实际参数(实参),被调方法中用来接收数据的参数称之为形式参数(形参)。通常在设计方法时,将方法被调用时会变化的数据设计成方法的参数,可以使方法更加灵活的根据调用者的需要进行处理。例1:MathUtils类:public原创 2021-04-08 20:12:40 · 96 阅读 · 0 评论 -
第六章 方法的返回值(1.3)
第六章 方法的返回值(1.3)四、方法的返回值四、方法的返回值方法的返回值即被调方法在调用后返回给主调方法的数据。大多数情况下,方法被调用后都需要告诉主调方法运算或处理的结果,此时便需要方法的返回值。方法的返回值语法格式:return [表达式];通常方法的设计应当遵循“功能单一”的原则,即一个方法只做一件简单而明确的事,像前面例子中的multiplyAndPrint(int num1, int num2)方法,即包含了进行相乘运算的功能,也包含了打印结果的功能,违背了方法功能单一的原则。更好的原创 2021-03-06 21:49:25 · 997 阅读 · 0 评论 -
第六章 方法的声明和调用(1.2)
第六章 方法的声明和调用二、方法的声明三、方法的调用二、方法的声明方法声明的语法格式:[修饰符] 返回值类型 方法名称([参数列表]) { // 方法体}解释:① 声明方法的语句中包括方法头(方法声明)和方法体两部分。② 方法头(方法声明)确定方法的名称,形式参数的名称、类型和顺序,返回值的类型和方法的访问权限。③ 方法体由括在花括号内的语句组成,这些语句实现方法的功能。④ 方法的修饰符是可选的,最常用的修饰符是public,表示方式是公开的;private是私有的,protecte原创 2021-03-06 21:42:30 · 139 阅读 · 0 评论 -
第六章 Java中的方法(1.1)
第六章 Java中的方法(1.1)1.1、方法的概念1.2、为什么使用方法?1.1、方法的概念Java中,从面向对象的哲学角度来说,方法是对象所具有的行为。就方法本身来说,方法是完成特定功能的、相对独立的程序段,与其它编程语言中的子程序、函数等概念相当。方法一旦声明,可以在不同的程序段中多次调用。在之前的内容中已经使用过多次由JDK提供的方法,如:System.out.println("Hello World"); // println() 是一个方法new Random().nextInt(原创 2021-03-06 21:16:52 · 96 阅读 · 0 评论 -
第五章 包(1.4)
第五章 包(1.4)4.1、将类组织在包中4.2、常见的Java系统包4.3、导入其他包中的类4.3.1、使用import语句4.3.2、使用类的完全限定名在复杂的文件系统中,文件分门别类存储在不同的文件夹中,便于组织管理及查找,同时也避免文件的重名问题。在程序设计过程中,一个系统工程需要编写几百个甚至上千个文件,可能有很多开发人员共同协作完成,也存在组织管理类文件和避免类文件同名等问题。Java中使用包来解决,Java的类文件存储在不同的包中。4.1、将类组织在包中在每一个类文件最前面,使用关键字p原创 2021-03-05 01:31:27 · 419 阅读 · 1 评论 -
第五章 对象(1.3)
第五章 对象(1.3)3.1、创建对象3.2、使用对象3.3、对象的内存分配3.4、空指针 null3.1、创建对象被声明过的类可以用来创建对象,所谓的创建对象就是声明变量并初始化的过程。创建对象的语法格式:类名 对象名;对象名 = new 类名();或者类名 对象名 = new 类名();下面是一个实例:public class Test1 { public static void main(String[] args) { // 声明一个Student类型的变量 Stu原创 2021-03-05 01:26:31 · 411 阅读 · 1 评论 -
第五章 类(1.2)
第五章 类的分类(1.2)2.1、普通类2.2、抽象类2.2.1、抽象类是什么?2.2.2、声明和使用抽象类2.2.3、声明抽象方法2.2.4、继承抽象类2.2.5、抽象类和抽象方法总结2.3、内部类2.3.1、内部类是什么2.3.2、常见的内部类2.3.2.1、成员内部类2.3.2.2、局部内部类2.3.2.3、匿名内部类Java是一种纯粹的面向对象的语言,每一个程序至少包含一个类,所有的数据(属性)和操作(行为)都封装到类中。类声明在Java源文件中(扩展名为.java的文本文件),一个源文件中只能原创 2021-03-05 01:19:00 · 227 阅读 · 1 评论 -
第五章 面向对象的概念(1.1)
第五章 面向对象的概念(1.1)1.1、对象1.2、类1.3、面向对象1.4、面向对象程序设计1.1、对象万事万物皆为对象,对象是具体的,能看的见、摸得着的任何物品都是对象;甚至是看不见、摸不着的的事物也是对象。对象的特点:对象的状态(属性);对象的行为(方法);1.2、类类是具有相同的状态和行为的一组对象的集合,且类是抽象的。例如:有一组对象,他们都具有姓名、身高、体重、学号这些状态(属性),并且他们也都具有听课、做作业这些行为,他们便可以归纳为同一类,即学生类。1.3、面向对象原创 2021-03-05 00:58:05 · 109 阅读 · 1 评论 -
第四章 字符串的练习(1.5)
第四章 字符串的反转(1.4)1.1,charAt()1.2,toCharArray()1.3,reverse()1.1,charAt()通过String类的charAt()的方法来获取字符串中的每一个字符,然后将其拼接为一个新的字符串(newStr)。public class Test1 { public static void main(String[] args) { String str = "abcd"; String outStr = reverseCharAt(str);原创 2021-09-25 21:24:32 · 93 阅读 · 0 评论 -
第四章 StringBuffer和StringBuilder(1.4)
StringBuffer和StringBuilderStringBufferStringBuilderString类、StringBuffer类和 StringBuilder类的关系如下图所示:解释:StringBuffer当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。在使用 StringBuffer 类原创 2021-09-25 20:14:00 · 60 阅读 · 0 评论 -
第四章 字符串与基本数据类型的转换(1.3)
第四章 字符串与基本数据类型的转换(1.3)3.1、基本数据类型转换为String型3.2、String型转换为基本数据类型3.1、基本数据类型转换为String型基本类型的数据转换成字符串类型有通常有两种方法:通过字符串连接(使用“+”符号)将基本类型转换为string型;通过string类型提供的vlalueof(基本类型数据 变量名)方法将基本数据类型转换为字符串类型。例1:Pubic class Text{Public static void mian(String[] args原创 2021-03-02 22:20:18 · 336 阅读 · 0 评论 -
第四章 字符串常用的API(1.2)
第四章 字符串常用的API(1.2)2.1、API2.2、常用API2.3、控制符2.1、APIAPI(Application Programming Interface),即应用程序编程接口。A(Application),即应用,按不同的场合,可以是一个提供特定功能的软件、一个提供某些数据的网络服务、一个作为程序组件的类库、甚至是一个硬件设备等等。P(Programming),即编程。I(Interface),即接口,是不同系统或实体交接并通过它彼此作用的部分。注意:API就是在编程过程中原创 2021-03-02 22:18:16 · 70 阅读 · 0 评论 -
第四章 字符串(1.1)
第四章 字符串(1.1)1.1、字符串的声明和初始化1.2、字符串的连接1.3、字符串的比较1.4、字符串的存储字符(char)类型是Java的基本数据类型之一,用来存储单个字符。在开发过程中,往往多个字符一起才能表达一个有意义的数据。Java提供了字符串(String)类型,用来处理一连串的字符。字符串便是由若干字符组成的序列。1.1、字符串的声明和初始化语法格式:String 变量名 = “初始值”或者String 变量名 = new string(“初始值”);例子:String原创 2021-03-02 22:15:03 · 77 阅读 · 0 评论 -
第三章 Arrays工具类(1.4)
第三章 Arrays工具类(1.4)四、操作数组的Arrays工具类四、操作数组的Arrays工具类JDK中提供的java.util.Arrays类,是一个常用于操作数组的工具类,该类中提供了一系列的静态方法,可以完成如数组拷贝、数组排序等功能,其中部分是泛型方法。java.util.Arrays类中的一些常用API如下:序号方法返回值方法说明1asList(T... a)List<T>返回包含数组元素的列表集合2binarySearch(int[]原创 2021-03-02 22:06:00 · 79 阅读 · 0 评论 -
第三章 Java的内存管理(1.3)
第三章 Java的内存管理(1.3)3.1、初步了解Java的内存管理3.2、Java内存中的数组3.3、基本数据类型和应用数据类型3.4、二维数组3.5、三维数组及多维数组3.1、初步了解Java的内存管理使用一些编程语言编写的程序会直接向操作系统(OS)请求内存,但是Java语言为保证其平台无关性,并不允许程序直接向操作系统请求内存,而是由Java虚拟机来完成这一操作,开发者只需要关心Java虚拟机是如何管理内存空间的,而不用关心操作系统(OS)是如何管理内存的。Java虚拟机在执行Java程序原创 2021-03-02 22:02:25 · 121 阅读 · 0 评论 -
第三章 数组的使用(1.2)
第三章 数组的使用(1.2)2.1、数组的声明2.2、为数组分配内存空间2.3、为数组元素初始化2.3.1、数组没有初始化时的默认值2.3.2、数组初始化的举例2.4、访问数组元素Java中,数组必须经过声明、内存分配、初始化后才能使用。2.1、数组的声明语法格式:<1> 数据类型 数组名 [] ;或者<2> 数组类型[] 数组名 ;注意:建议使用<2>种的数组声明格式,因为可以把“数据类型[ ]”看作一种特殊的数据类型。例如:// 数组的声明原创 2021-03-02 21:57:41 · 105 阅读 · 0 评论 -
第三章 数组的基本概念(1.1)
第三章 数组的基本概念(1.1)1.1、数组1.2、数组元素1.3、数组的数据类型1.4、数组元素的下标1.5、数组的大小通常声明一个基本数据类型的变量来表示一个数据,但是在实际应用中,经常需要处理具有相同性质的一批数据。如果需要声明10个数据类型相同的变量,通过基本数组类型来声明就显得极不方便。因此,Java中引入数组的概念,数组即用一个变量表示一组相同性质的数据。数组元素在数组(二维数组)中的位置,如图:1.1、数组数组是数据类型相同且有序的一组数组元素的集合。String类型的数组arr原创 2021-03-02 21:53:08 · 77 阅读 · 0 评论 -
第二章 程序结构(1.6)
第二章 Java语言程序结构(1.6)八、Java语言程序结构8.1、顺序结构8.2、分支结构8.2.1:单分支```if```语句8.2.2:双分支```if...else```语句8.2.3:嵌套的```if...else```语句8.2.4:多分支```if...else if...else```语句8.2.5:```switch```语句8.3、循环结构8.3.1:```while```循环语句8.3.2:```do...while```循环语句8.3.3:```for```循环语句8.3 4:``原创 2021-03-01 20:08:56 · 65 阅读 · 2 评论 -
第二章 数据类型转换(1.5)
第二章 数据类型转换(1.5)七、数据类型转换7.1、自动类型转换7.2、强制类型转换7.3、表达式返回结果的数据类型转换七、数据类型转换混合运算中,不同类型的数据必须先转化为同一类型,然后进行运算。转换顺序从低级到高级。低 --------------------------------------------------------------------> 高byte,short,char—> int—> long—> float—> double注意:原创 2021-03-01 20:03:40 · 148 阅读 · 0 评论