
JAVA基础学习笔记
JavaSE
VvUPUP
这个作者很懒,什么都没留下…
展开
-
JAVA面向对象(一)
JAVA面向对象三条主线:1.JAVA类和类的成员:属性、构造器、方法、代码块、内部类。2.面向对象的三大特征:封装性、继承性、多态性3.其他关键字:this、super、static等等一、类和对象及定义。类:对一类事物的描述,是抽象的,比如人、汽车等;对象:是实际存在的该类事物的每个个体,也被称作实列,比如:具体的某个人,具体的某辆车。类的定义:class 类名{ 属性; 构造器; 方法;}对象的定义:类名 对象名称 = new 类名原创 2020-07-06 22:30:09 · 1377 阅读 · 0 评论 -
JAVA面向对象(二)
一、继承性1.继承性的好处:减少了代码的冗余,提高了代码的复用性;便于功能的拓展。class A extends B{}A:子类 B:父类2.体现:一旦子类A继承了父类B以后,子类中就获取了父类B中声明的所有属性和方法。特别的,父类中声明为privated的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只是因为封装性的影响,不能直接调用而已。子类继承父类以后,还可以声明自己特有的属性或方法,实现更能的拓展。3.规定:一个类可以被多个子类继承,一个子类只能原创 2020-07-11 16:14:32 · 181 阅读 · 0 评论 -
JAVA面向对象(三)
一、多态性1.多态性对象的多态性:父类的引用指向子类的对象Person p = new Man();//p就是父类的引用上面的p只能调用父类声明的方法,执行的时候实际上是子类对父类重写的方法(属性不适用,还是要看父类)编译看左边,运行看右边多态性的前提是:有继承关系,有方法的重写2.为什么要有多态性这个东西呢?举个栗子public class Main { public static void main(String[] args) { func(new Cat()原创 2020-07-11 20:47:20 · 218 阅读 · 0 评论 -
== 和 equals() 的区别
1、==== 是一个运算符;可以使用在基本数据类型变量和引用数据类型变量中:如果比较的是基本数据类型,比较两个变量保存的数据是否相等(不一定类型相同)如果是引用数据类型,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体2、equals()equals()是一个方法,非运算符;只适用于引用数据类型Object类中equals()的定义:(Object类是所有类的根父类)public boolean equals(Object obj) { retur原创 2020-07-11 22:19:40 · 115 阅读 · 0 评论 -
JAVA面向对象(四)
一、包装类java中的基本数据类型却不是面向对象的,但是我们在实际使用中经常将基本数据类型转换成对象,便于操作。包装类和基本数据类型的关系继承关系基本数据类型转到包装类(直接用构造器)int num1 = 10;Integer in1 = new Integer(num1);Integer in2 = new Integer("123");Integer in3 = new Integer("123ab");//报异常class Order{ bool.原创 2020-07-13 15:19:11 · 200 阅读 · 0 评论 -
JAVA面向对象(五)
一、代码块1.代码块的作用:用来初始化类和对象代码块如果要修饰的话,只能是static//非静态代码块{......}//静态代码块static{......}2.非静态代码块内部可以有输出语句随着对象的创建而执行每创建一个对象,就执行一次可以在创建对象的时候,对对象的属性等进行初始化的操作3.静态代码块内部可以有输出语句随着类的加载而执行,而且只执行一次如果一个类定义了多个静态代码块,按照声明的先后顺序4.代码块执行的顺序:由父原创 2020-07-13 20:23:57 · 810 阅读 · 0 评论 -
JAVA面向对象(六)
一、接口接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。接口指明了一个类必须要做什么和不能做什么,相当于类的蓝图,是一种规范。1.特点:接口和类是两个并列的结构接口不能实例化,当中没有构造器接口具有多态性2.为什么要使用接口在Java中不支持多继承,可以通过接口来弥补这个局限。3.使用:使用interface来修饰JDK7及以前,接口内只能定义全局常量和抽象方原创 2020-07-14 20:40:29 · 194 阅读 · 0 评论 -
异常处理
一、为什么有异常在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统运行的时候仍然会出现很多靠代码不能规避的错误,比如:用户的输入格式,读取文件是否存在,网络是否保持畅通等。二、异常异常:在java中,将程序执行中发生不正常情况称为“异常”。(语法和逻辑的错误不是异常)异常可以分为两类:Error:java虚拟机无法解决的严重问题。JVM内存错误,资源耗尽等严重问题。比如:StackOverflowError。一般不编写针对性的代码进行处理。Exception:原创 2020-07-16 23:08:32 · 219 阅读 · 0 评论 -
多线程与线程安全1
一、基本概念1、程序:是为了完成特定的任务,用某种语言编写的一组指令的集合。一段静态的代码。2、进程:程序的一次执行过程,或是正在运行的程序。是一个动态的过程,自身的产生、存在和消亡。(生命周期)3、线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多个线程,就是支持多线程的。线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器。线程的切换开销小。一个进程中的多个线程共享相同的内存单元,可以访问相同的变量和对象,使得线程间的通信更加的简便高效。但多线原创 2020-07-18 14:48:10 · 242 阅读 · 0 评论 -
多线程与线程安全2
·一、线程的通信1、例子:用两个线程,交替打印1-100的数字public class Main { public static void main(String[] args) { Number number = new Number(); Thread t1 = new Thread(number); Thread t2 = new Thread(number); t1.setName("线程1"); t2原创 2020-07-21 19:51:35 · 131 阅读 · 0 评论 -
常用类
一、String类1、概述:String类声明为final,不可被继承String类实现了serializable接口:字符串支持序列化。String类实现了comparable接口:可比较大小。通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串声明在字符串常量池中。字符串常量池中不会存储内容相同的字符串。String内部是final的char[]数组(后面变成了byte),是不可变的。当对字符串重新赋值、进行连接操作或者更改时,需要重新指定内存区域赋值。Strin原创 2020-07-23 22:16:36 · 941 阅读 · 1 评论 -
枚举类
一、枚举类的使用1、枚举类的理解:类的对象只有有限个,确定的,我们称此类为枚举类。2、当需要定义一组常量时,强烈建议用枚举类。3、如果枚举类中只有一个对象,则可以作为单列模式的实现方式。二、枚举类的创建1、自定义枚举类public class Main{ public static void main(String[] args){ Season season = Season.SPRING; System.out.println(seas原创 2020-07-29 21:37:27 · 125 阅读 · 0 评论 -
集合(Collection接口)
一、集合与数组1. 集合与数组存储数据概述:集合、数组都是对多个数据进行存储操作的结构,简称Java容器。 说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储2. 数组存储的特点:一旦初始化以后,其长度就确定了。 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。3. 数组存储的弊端:一旦初始化以后,其长度就不可修改。 数组中提供的方法非常限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。 获取数组中实际元素的个数的需求,数组没有现原创 2020-08-08 11:33:07 · 456 阅读 · 1 评论 -
集合(Map接口)
一、Map概述Map与Collection并列存在。用于保存具有映射关系的数据:key-value Map中的key和value都可以是任何引用类型的数据 Map中的key用set来存放,不允许重复,即同一个Map对象所对应的类,须重写 hashCode()和 equals()方法 常用 String类作为Map的“键” key和value之间存在单向一对一关系,即通过指定的key总能找到唯一的、确定的value Map接口的常用实现类:HashMap、TreeMap、LinkedHas.原创 2020-08-15 11:58:38 · 212 阅读 · 0 评论 -
泛型
一、泛型简介1、泛型的概念所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返 回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、 创建对象时确定(即传入实际的类型参数,也称为类型实参)。 从JDK 5.0以后,Java引入了“参数化类型(Parameterized type)”的概念,允许我们在创建集合时再指定集合元素的类型,正如:List<String>,这表明该List只能保存字符串类型的对象。 JDK 5.原创 2020-08-16 13:44:34 · 211 阅读 · 0 评论 -
File类
1、File类的理解File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)。 File类声明在java.io包下:文件和文件路径的抽象表示形式,与平台无关。 File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。 后续Fi原创 2020-08-17 16:52:47 · 373 阅读 · 0 评论 -
IO流(上)
一、简述 IO是Input/Output的缩写,I/O技术是非常实用的技术,用于处理设备之间的数据传输。如读/写文件,网络通讯等。 Java程序中,对于数据的输入输出操作以“流(stream)”的方式进行。 Java.IO包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。 二、流的分类操作数据单位:字节流、字符流对于文本文件(.txt,.java,.c,.cpp),使用字符流处理 对于非文本文件(.jpg,.mp3,.mp4,.av原创 2020-08-17 20:37:08 · 170 阅读 · 0 评论 -
IO流(下)
一、缓冲流1、缓冲流涉及到的类:BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter2、引入目的 作用:提高流的读取、写入的速度 提高读写速度的原因:内部提供了一个缓冲区的内存中。从内存中读取的速度要高于直接从硬盘中读取的速度。 3、使用说明 当读取数据时,数据按块读入缓冲区,其后的读操作则直接访问缓冲区。 当使用 BufferedInputStream读取字节文件时,原创 2020-08-22 23:42:28 · 189 阅读 · 0 评论 -
注解与反射
注解(Annotation)1、注解的理解: Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取(与注释的区别), 并执行相应的处理。通过使用 Annotation,程序员可以在不改变原逻辑的情况下, 在源文件中嵌入一些补充信息。 Annotation可以像修饰符一样使用,可以用来修饰包、类、构造器、方法、成员变量、参数、局部变量的声明,这些信息被保存在Annotation的“name = value”对中。 在JavaSE中,注..原创 2020-08-31 23:14:21 · 231 阅读 · 7 评论 -
网络编程
一、概述 计算机网络: 把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息共享硬件、软件、数据信息等资源。 网络编程的目的: 直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯 实现网络通信需要解决的两个问题: 如何准确地定位网络上一台或多台主机;定位主机上的特定的应用 找到主机后如何可靠高效地进行数据传输 二、通讯要素一:IP和端口号1、IP的理解IP:唯一的标识 Inter原创 2020-09-29 17:14:44 · 269 阅读 · 0 评论 -
XML和JSON
XML一、简介可扩展标记语言,是一个与平台无关的独立的标记语言,具有自我描述性。用途:网络数据传输,数据存储 ,配置文件(主要)XML文件:.XML文件是保存XML数据的一种方式 XML数据也可以以其他的方式存在(如在内存中构建XML数据)。 不要将XML语言狭隘的理解成XML文件。二、XML语法格式1、文档声明:(放在第一行)<?xml version="1.0" encoding="UTF-8"?>2、标记:(xml就是由一个个标记组成)开始标原创 2020-10-09 15:09:01 · 133 阅读 · 0 评论