
Java学习笔记
文章平均质量分 82
java 学习过程中的笔记
清风挽歌
keep moving
展开
-
Java 注解——Java学习笔记
注解Java5中引入,注解(Annotation)也叫元数据(用来描述数据的数据)。注解也是一种类型,他是JDK1.5及以后版本引入的一个特征,与类、接口、枚举是同一个层次的他可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来为这些元素进行说明(就像贴一个标签)注解作用分类:编写文档:通过代码里标识的注解生成文档(@see、@param、@return)代码分析:通过代码里的标识注解对代码进行分析(替代配置文件的功能)检查编译:通过代码标识里的注解让编译器能够实现基本的编译检原创 2020-10-16 22:09:05 · 175 阅读 · 0 评论 -
Java 枚举——Java学习笔记
枚举枚举是一种特殊的类,也可以作为内部类定义在类中当一个类的对象只有固定的几个值的时候,就可以使用枚举就像季节只有:春夏秋冬;性别只有:男女特点:1、枚举类中第一句必须是实例对象的声明,多个实例对象之间使用逗号隔开,如果一个枚举类没有声明实例对象,那么它就没有实例。实例对象前面其实是public static final修饰,不可修改2、如果枚举类中没有实例,类中的第一行代码也需要写一个 ;这样才能通过编译3、枚举类中都有一个values方法,返回枚举类中的所有实例对象4、枚举原创 2020-10-16 22:05:38 · 209 阅读 · 1 评论 -
反射——Java学习笔记
反射反射概述哪些类有Class对象获得Class从Class中获取信息获取包名和类型名获取属性获取方法获取构造器获取类的加载器获取类型修饰符获取父类或父接口获取内部类或外部类信息获取泛型父类获取注解信息使用反射生成对象并操作使用反射创建对象获取、设置属性值调用方法操作数组反射概述Java反射机制是运行状态中,对于任意一个类,都能够知道这个类的所有的属性和方法,对于任意一个对象,都能够调用它的任意方法和属性,这种动态获取信息以及动态调用对象的方法就被称为Java语言的反射机制java程序中,所有对象都有原创 2020-10-08 22:28:08 · 266 阅读 · 0 评论 -
Java类的加载(类加载器、ClassLoader)——java学习笔记
Java类的加载类的加载、连接、初始化当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载、连接、初始化三个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成这个三个步骤,所以有时也把这三个步骤统称为类的加载或者类的初始化类的加载系统可能在第一次使用某个类时加载该类,可也可能采用预先加载机制来预加载某个类,不管怎样,类的加载必须由类加载器来完成,类加载器通常是由JVM提供,由JVM提供的这些类加载器通常被称为系统类加载器。除此之外,开发者可以通过继承ClassLoader基类来原创 2020-09-27 21:46:32 · 346 阅读 · 0 评论 -
泛型(全)——Java学习笔记
泛型泛型是一种参数化类型的机制。它可以使得代码适用于各种类型,从而编写更加通用的代码将原来具体的类型,变成一个可变的参数类型,使用时传递什么样的类型参数它就是什么类型。类似于方法中的变量参数。泛型是一种编译时类型确认机制。它提供了编译期的类型安全。确保在泛型类型上只能使用正确类型的对象,避免了在运行时出现的ClassCastException泛型使多种数据类型都可以执行一个代码,提高了代码的复用性泛型的引入我们知道集合中可以存放任意类型的对象。只要把对象放入集合中,其实这时对象都被提升为一个原创 2020-09-26 14:31:30 · 228 阅读 · 0 评论 -
多线程(二、线程安全,线程通讯,线程池)
多线程(二、线程安全,线程通讯,线程池)经过前面的学习,我们发现使用多线程中会有很多问题,这就涉及到了每个线程之间的配合问题。所以我们继续学习线程同步、线程通讯和线程池。线程安全问题线程安全问题是多线程的一个重点问题。经典的卖票问题:public class Test7 { public static void main(String[] args) { Station station = new Station(); Thread thread1 = ne原创 2020-09-23 11:00:52 · 296 阅读 · 0 评论 -
线程、多线程入门
多线程(一)平时我们写的程序其实都是单线程的,它们都是从main方法开始一条顺序向下执行的。多线程其实就是使程序可以分为好几个路径去执行代码,每个线程之间互不干扰。Java语言提供了非常优秀的多线程支持,程序可以非常简单的方式来启动多线程。进程与线程学习多线程之前我们要了解程序、线程和进程的关系进程几乎所有的操作系统都支持进程的概念,每一个运行中的任务,都对应一个进程,进程是处于运行过程中的程序,并且具有一定独立功能,进程是操作系统进行资源分配和调度的一个独立单位。进程中包含着多个多运行中的线程原创 2020-09-20 18:28:15 · 179 阅读 · 0 评论 -
Properties类——Java学习笔记
Propertiesjava.util.Properties继承至Hashtable,表示一个持久的属性集,可以叫做配置文件类通常用于读取配置文件信息,java中的配置文件通常为.porperties文件他使用键值对的结构存储数据,每一个键,及其独享值都是一个字符串Properties可以保存在流中或者从流中加载他也是一个容器类,Hashtable的子类。(Hashtable和HashMap的区别:Hashtable不能把null作为键和值,HashMap可以)构造方法:Properti原创 2020-09-18 20:56:14 · 151 阅读 · 0 评论 -
IO流(缓冲流、转换流、序列化流)
IO流(二——缓冲流、转换流、序列化流)继续学习IO流:分类:字节流OutputStreamFileOutputStreamBufferedOutStreamObjectOutputStreamInputStreamFileInputStreamBufferedInStreamObjectInputStream字符流WriterOutputStreamWriterFileWriterBufferedWriterReaderI原创 2020-09-17 22:22:55 · 145 阅读 · 0 评论 -
IO流(一)——java学习笔记
IO流把数据的传输看作是一种数据的流动,以内存为基准,按照流动的方向又分为输入(input)流和输出(output)流,从内存写到磁盘就是输出流,从磁盘读入内存就是输入流。java中I/O操作主要是指java.io包下的类进行的输入输出操作。I/O操作步骤:使用File类打开一个文件通过字节流或者字符流的子类,指定输出输入的位置进行读写操作关闭流(I/O操作属于资源操作,一定要关闭)流的分类:字节流OutputStreamFileOutputStreamBuffe原创 2020-09-16 22:44:50 · 261 阅读 · 0 评论 -
File类——Java学习笔记
File类java.io.File类是文件和目录路径名的抽象表示,它代表了磁盘上的一个目录或者文件。主要用于文件和目录的创建、查找、删除等操作构造方法:public File(String pathname):根据指定字符串路径创建一个File对象public File(String parent,String child):根据父路径和子路径字符串创建一个File对象public File(File parent,String child):根据parent目录对象和子路径字符串创建原创 2020-09-14 21:24:57 · 149 阅读 · 0 评论 -
Java集合(理解)——学习笔记
Java集合Java中的集合类主要有三种,List(列表)、Set(集)、Map(映射)关系Java集合Collection接口List集合List接口List的实现类ArrayListlinkedListSet集合Set接口Set的实现类HashSet哈希表LinkedHashSetMap集合Map接口EntryMap的实现类HashMapLinkedHashMapCollection接口最基本的集合接口,没有直接继承Collection的类,都是继承Collection的子接口,如List、Se原创 2020-09-13 21:13:50 · 243 阅读 · 0 评论 -
简单理解Iterator迭代器
Iterator迭代器java.util.Iterator接口,主要用于迭代访问Collection中的元素,被称为:迭代器迭代的概念:Collection集合元素的通用获取方式,在取元素之前先判断集合中有没有元素,如果有就把这个元素取出来,在继续判断,如果还有就继续取,直到把所有所有元素取出,这种取出的方式就叫做迭代常用方法:public E next():返回迭代的下一个元素public boolean hasNext():如果有元素,则返回true(可以迭代)配合原创 2020-09-12 22:17:38 · 217 阅读 · 0 评论 -
Java学习笔记——Collections、Comparable、Comparator
Collections、Comparable、ComparatorCollections操作集合的工具类,包含很多操作集合的静态方法直接Collections.方法名就可以使用返回值方法名说明booleanaddAll(Collection<?super T> c,T…elements)往集合中添加一些元素voidshuffle(List<?> list)使用默认的随机源重新排列指定的集合voidsort(List list, Co原创 2020-09-11 22:51:52 · 280 阅读 · 0 评论 -
Java学习笔记——简述数据结构(堆栈\队列\数组\链表\树)
Java基本数据结构Java中提供了很丰富的容器技术,这些容器技术在底层都是通过各种各样的数据结构来实现的。下面列出了几个 常见的数据结构,简单的做一下了解栈栈:stack,又称为堆栈,它是运算受限的线性表,其限制是仅允许在栈的一端进行插入和删除操作,不允许在其它任何位置进行添加、查找、删除等该结构的集合的特点:先进先出(先存进去的元素,要在它后面的的元素都取出后才能取出,就像子弹夹)压栈(push):存元素。弹栈(pop):取元素。队列队列:queue,简称队,它和堆栈一样原创 2020-09-10 22:38:42 · 307 阅读 · 0 评论 -
Java学习笔记——异常
Java异常ThrowableError(错误)Exception(异常)编写时异常运行时异常所有异常类都继承自Throwable类,Error是程序无法处理的错误,表示程序运行中比较严重的问题Exception是程序本身可以处理的异常,异常又分为两大类:运行时异常和非运行时异常(编译异常)编译时异常和运行时异常编译时异常必须做显示处理,否则无法通过编译运行时异常无需显示处理,也可以和编译时异常一样处理。Java编译器不会去检查它,程序中可能出现这种异原创 2020-09-09 22:02:08 · 245 阅读 · 0 评论 -
学习笔记——Java关于时间的类
Java中几个关于时间的类时间类Java中使用1970.1.1 00:00:00作为时间原点,以毫秒值作为单位计时。jdk1.1之后将有关时间的操作分为了三个类:Date(表示时间)DateFormat(改变时间显示格式)Calendar(修改操作时间)Date类表示时间Date中的大多数方法都已经过时了,转移到了其他两个类中,它主要用来获得时间构造方法:无参的构造方法:使用当前时间创建一个date对象传入long类型的参数:使用传入的参数作为毫秒值创建da原创 2020-09-08 23:07:23 · 166 阅读 · 0 评论 -
Math、System、Object(java中常用的方法)
几个实用的方法!(Math、System、Object)简单的了解了这三个类,常用的方法,平时使用很方便,没有写到的可以在jdk中的API中查看,活学活用MathMath类包含执行基本数学运算的方法Math类的构造方法是private的,无法创建对象,但是内部类的方法都是静态的,可以直接通过 类名. 进行调用常用方法:返回值方法名说明intabs(int a)返回参数的绝对值doubleceil(double a)返回大于或等于参数的最小doubl原创 2020-09-04 22:38:16 · 235 阅读 · 0 评论 -
Java内部类
Java内部类刚学的知识,能力有限,暂时整理出这么多,简单的了解和使用 Java内部类内部类的基本使用成员内部类局部内部类匿名内部类静态内部类内部类的基本使用概念: 内部类就是在一个类中定义一个类,格式:public class 类名{ public class 内部类名{ }}内部类的访问:内部类可以直接访问外部类的成员,包括私有属性、方法外部类需要创建内部类对象,才能访问成员内部类成员内部类就是作为外部类的成员,也是最常见的内部类可原创 2020-09-04 00:18:17 · 180 阅读 · 0 评论 -
接口——Java学习笔记
接口在学习过继承、多态和抽象类的基础上,我们又学习了接口。目录接口接口的定义和实现抽象方法默认方法静态方法私有方法接口的多实现一个类中实现多个接口时(接口的多实现),出现的一些情况:抽象方法有重名,只需要重写一次默认方法有重名,必须重写一次静态方法有重名时,不会发生冲突(因为静态方法只能使用自己的接口名调用)接口的多继承如果一个类实现了子接口,那么就要实现子接口和父接口中的所有抽象方法接口是Java语言中的一种引用类型,是一系列方法的声明,方法特征的合集,也是一种标准。如果说类的内部封装了成员变量原创 2020-09-02 21:40:48 · 259 阅读 · 0 评论 -
抽象类——Java学习笔记
抽象类在面向对象中,一切事物都是对象,对象都是使用类来描述的,但是,当一个类中,没有足够的信息去描述一件具体的事物(对象)时,那么就要将这个类定义为抽象类。定义:抽象类需要abstract关键字声明abstract class Shape{}实现:由一个子类继承抽象类,实现抽象类中的抽象方法(抽象类就是用来继承的),子类实现后,创建的子类对象才可以使用这些方法。class Square extends Shape{ //要在其中实现抽象类中的所有抽象方法}特点:抽象类中可以原创 2020-09-02 21:34:04 · 147 阅读 · 0 评论 -
多态详解 ——Java学习笔记
多态详解 ——Java学习笔记前面的面向对象学习简单的写了一下多态,经过新的学习现在又详细的了解了多态,包括前面没学过的方法重写、向上转型、向下转型、动态绑定机制,在这里记录一下知识点多态一个方法在不同类中的不同实现实现多态的前提条件:继承方法重写父类引用指向子类对象(向上转型)方法重写:当父类中的方法无法满足子类的需求时,子类可以对该方法进行重写必须和父类的方法名、返回值、参数列表完全相同,并且访问修饰符的范围不能变小多态:把父类对象指向子类对象的引用,就是把子类对象当作原创 2020-09-01 22:27:18 · 588 阅读 · 0 评论 -
Java学习笔记——权限修饰符、final关键字、static关键字
权限修饰符、final关键字、static关键字权限修饰符修饰符\范围自己的类同一包中的类不同包中的子类所有类private√默认√√protected√√√public√√√√(默认就是不写修饰符)private修饰符:只能修饰属性和方法,不能修饰类,一般成员属性私有(private),成员方法公共(public)public修饰符:一般用来修饰类和方法默认修饰符:可以修饰属性、方法、类protected修饰符原创 2020-09-01 20:34:52 · 188 阅读 · 0 评论 -
Java学习笔记——String类
String类java.lang.String类代表字符串。Java程序中所有的字符串文字都可以被看作是实现类的实例(对象),也就是说凡是用双引号引起来的内容,都是一个字符串String类的对象。特点:字符串是一个不可变的类,也就是字符串的值在创建后不能修改。不可变是指值本身不能改变,如果重新给字符串对象赋值,字符串对象会指向一个新的值字符串池的原理:字符串池是一个专门用来存储字符串值得空间,所有创建的字符串对象在赋值时,都需要和字符串池中已有的内容进行对比,如果内容已经存在,直接引用已存在的原创 2020-08-31 20:15:32 · 238 阅读 · 0 评论 -
Java常用API学习(Scanner、Random、包装类)
Java常用API学习(Scanner、Random、包装类)今天简单的学习了一下JavaAPI中的三个常用的类,做了一下简单的整理API简述什么是APIAPI(Application Programming Interface) :应用程序编程接口Java中的API指的就是JDK中提供的各种功能的Java类,这些类将是底层的实现封装了起来,我们不需要关系这些类是如何实现的,只需要学习这些类如何使用即可我们可以通过帮助文档来学习这些API如何使用(可以在网络上下载相应版本的API文档原创 2020-08-29 23:49:28 · 169 阅读 · 0 评论 -
Java学习笔记——Javabean、包的使用
Javabean、包的使用Java学习第八天,简单了解使用JavaBean类、创建包和导包,要记住知识点JavabeanJavaBean是Java语言中一种标准的类的定义方式。凡是符合JavaBean的定义规范的类都统称为JavaBean。”Write once, run anywhere, reuse everywhere”(一次性编写,任何地方执行,任何地方重用)JavaBean的定义规范:成员变量使用private关键字修饰,语法:private 数据类型 属性名;提供一个公共(pu原创 2020-08-28 23:02:20 · 1585 阅读 · 0 评论 -
Java面向对象(基础总结)
Java面向对象(基础总结)面向对象是一种编程思想。面向对象的三大基本特征:封装继承多态面向对象的编程思想就是把事物看作一个整体,从事物的特征(属性)和行为(方法)两个方面进行描述。面向对象的过程就是找对象、建立对象、使用对象、维护对象的关系的过程目录Java面向对象(基础总结)面向过程和面向对象抽象类对象全局变量(成员变量)局部变量成员方法构造方法this关键字封装继承多态对象的内存分析面向过程和面向对象面向过程面向对象设计思路自顶向下、层次化、分解原创 2020-08-26 22:05:36 · 25745 阅读 · 0 评论 -
Java学习笔记——Java方法的定义和调用
方法方法的概念方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,可以被重复调用。方法必须先创建才可以使用,该过程称为方法定义方法创建后并不是直接可以运行的,需要手动调用后才执行,该过程称为方法调用方法的定义和调用方法的四种格式:1、无参无返回值2、有参无返回值3、无参有返回值4、有参有返回值1、无参的方法定义和调用格式://定义方法public static void 方法名(){ //方法体}//调用方法方法名()原创 2020-08-25 22:47:18 · 355 阅读 · 0 评论 -
Java学习笔记——Java数组内存分析(堆内存、栈内存)
数组内存分析内存简述内存是计算机中的重要原件,临时数据存储区域,作用是运行程序。我们编写的程序是存放在硬盘中,在硬盘中的程序是不会运行的,必须放在内存中才能运行,运行完毕后会i清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理Java虚拟机的内存划分为提高效率就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据的方式和内存管理方式。JVM 的内存划分:区域名称作用寄存器给CPU使用,和我们开发无关本地方法栈JVM在使用操作系统功能的时候原创 2020-08-24 23:37:57 · 656 阅读 · 0 评论 -
Java学习笔记——Java基础语法(四、数组)
Java基础语法(四、数组)数组的定义和访问案例分析:假如现在要统计某个公司员工的工资情况,以前面所学的知识,公司有100个员工就要定义100变量分别存储每个员工的工资,如果想要输出他们的工资还要编写100次System.out.println()语句,如果再去计算公司员工最高工资、最低工资、平均工资情况,就很难操作而且错误率会很高。因此我的们可以使用数组(容器),将所有的数据全部存储到一个相关类型的数组中,统一操作。概念:数组是存储一组相同类型数据的数据结构特点:数组的元素必须是相同类型,原创 2020-08-22 15:46:48 · 584 阅读 · 2 评论 -
Java学习笔记——Java基础语法(三、流程控制语句)
Java基础语法(三、流程控制语句)流程控制语句在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的,所以,我们必须清楚每一条语句的执行流程。而且,很多时候要通过控制语句的执行顺序类实现我们想要的功能。流程控制语句分类顺序结构选择结构循环结构1、顺序结构顺序结构是程序中最简单最基本的流程控制,通常情况下,代码都是由上往下、由左往右,依次执行。2、选择结构也叫分支结构,根据条件的不同选择执行不同的代码if语句格式一:if(关系表达式){语句体}执行流程原创 2020-08-21 22:05:08 · 303 阅读 · 1 评论 -
Java学习笔记——Java基础语法(二、数据输入,Scanner的简单使用)
Java基础语法(二、数据输入,Scanner的简单使用)数据输入我们可以通过Scanner类来获取用户输入的信息,使用步骤如下:格式:1、导包,Scanner类在Java.util包下,所以需要将该类导入,导包的语句需要定义在类的上面。import java.util.Scanner;2、创建Scanner对象Scanner sc = new Scanner(System.in);//sc为变量名3、接收数据int i = sc.nextInt();//从键盘接收一个int类型的数据原创 2020-08-20 23:21:26 · 408 阅读 · 0 评论 -
Java学习笔记——Java基础语法(一)
Java基础语法(一)关键字关键字是指被Java语言赋予了特殊涵义的单词关键字的特点:关键字的字母全部小写常用的代码编辑器对关键字都是高亮显示,(如:public、class、static、void)数据类型计算机的存储单元无论是内存还是硬盘,计算机存储设备的最小信息单元叫”位(bit)“,我们又称为”比特位“。通常用小写字母b表示,存储一位二进制数(0或1),而计算机中最基本的存储单元叫做”字节(byte)“,通常用大写的B表示,字节是由连续的8个二级制位组成除了字节以外,还有一些常原创 2020-08-20 17:26:07 · 236 阅读 · 0 评论 -
Java学习笔记——Java概述(入门)
Java概述java语言发展历史Java语言是美国sun公司在1995年推出的一门高级的编程语言Java之父,詹姆斯·高斯林(James Gosling)在2004年,sun公司颁布了JDK5.0,革命性的重大版本更新2005年,Java的各种版本已经更名以取消其中的数字“2”,更名:J2SE–>JavaSEJ2EE–>JavaEEJ2ME–>JavaME2009年,sun公司被Oracle公司收购,所以现在访问Oracle官网即可(www.oracle.com)原创 2020-08-20 17:16:29 · 287 阅读 · 0 评论