JAVASE基础
文章平均质量分 89
JAVASE自学笔记
小唐要努力
这个作者很懒,什么都没留下…
展开
-
JavaSE基础——(27)反射&JDK新特性
一、反射1.1类的加载概述和加载时机当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三步来实现对这个类进行初始化,加载:就是将class文件(字节码文件)读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象 连接:连接分为验证,准备和解析三步 验证:是否有正确的内部结构,并和其他类协调一致 准备:负责为类的静态成员分配内存,并设置默认初始化值 解析:将类的二进制数据中的符号引用替换为直接引用 初始化:包...原创 2021-02-24 16:57:47 · 225 阅读 · 0 评论 -
JavaSE基础——(26)网络编程
一、网络编程概述计算机网络:是指将地理位置不同的具有独立功能的多态计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程:就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。二、网络编程三要素网络编程三要素分别为IP、端口号和。2.1 IP概述IP是每个设备再网络中的唯一标识,每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址...原创 2021-02-22 14:34:09 · 250 阅读 · 0 评论 -
JavaSE基础——(25)GUI图形用户界面
由于java中的GUI不是特别强大,在实际开发与面试中也不多见,这里不做过多篇幅的叙述,仅作学习了解。一、创建窗口并显示在java中,我们一般使用Frame类来创建窗口,Frame是带有标题和边框的顶层窗口,有以下几个构造方法,Frame()//构造一个新的窗口,初始不可见Frame(String title)//构造一个指定标题的新窗口,初始不可见然后是具体实现,import java.awt.*;public class GUITest { public...原创 2021-01-31 21:06:10 · 280 阅读 · 0 评论 -
JavaSE基础——(24)多线程
一、多线程概述线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务,而多线程则是并发执行程序,提高程序的效率,达到同时完成多项工作的目的。二、Java程序运行原理java命令会启动java虚拟机JVM,等于启动了一个应用程序,也就是启动了一个进程。该进程会自动启动一个“主线程”,然后主线程去带调用某个类中的main方法。注意:JV...原创 2021-01-29 16:56:52 · 190 阅读 · 0 评论 -
JavaSE基础——(23)File类递归练习
目录一、统计文件夹大小二、删除文件夹三、文件的拷贝四、按层级打印文件夹内容五、斐波拉契数列六、计算1000的阶乘6.1非递归实现6.2递归实现七、约瑟夫环问题一、统计文件夹大小要求从键盘接收一个文件夹路径,统计该文件夹的大小,import java.io.File;import java.util.Scanner;public class FileTest { private File dir; public static vo.原创 2021-01-26 18:27:26 · 186 阅读 · 0 评论 -
JavaSE基础——(22)IO流&其他流&Properties
一、序列流序列流可以把多个字节输入流整合成一个,它从一个有序的输入流集合开始,从第一个读取到文件的结尾,然后从第二个文件读取,依此类推,直到最后一个输入流达到文件的结尾。其整合两个输入流的方式如下,SequenceInputStream(InputStream s1, InputStream s2)我们来看看具体如何使用的吧, //将两个文件的内容合并写到一个文本文件中 FileInputStream fis1=new FileInp...原创 2021-01-26 15:22:22 · 149 阅读 · 0 评论 -
JavaSE基础——(21)IO流&字符流&递归
一、字符流1.1字符流概述字符流是可以直接读写字符的IO流,字符流读取字符,就是先读取到字节数据,然后转为字符,如果要写出字符,需要把字符转为字节再写出。1.2FileReaderFileReader是用于读取字符流的类,如果要读取原生的字节流,一般使用FileInputStream,FileReader主要有以下几个构造方法,FileReader(File file)//创建一个新的FileReader,给出File读取FileReader(Strin...原创 2021-01-23 16:21:32 · 122 阅读 · 0 评论 -
JavaSE基础——(20)IO流&字节流
一、IO流1.1 IO流概述及分类IO流是用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的类都在IO包中,流按照流向可以分为输入流和输出流,按照操作类型可以分为:字节流和字符流,字节流:字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的 字符流:字符流只能操作纯字符数据,比较方便...原创 2021-01-21 15:04:56 · 246 阅读 · 1 评论 -
JavaSE基础——(19)异常与输入输出
一、异常1.1异常的概述与分类异常就是java程序在运行过程中出现的一些错误。异常最底层的就是Throwable,它又分为Error和Exception,Error一般包括服务器宕机或者数据库崩溃,我们只需要重点了解Exception即可,下图是部分异常的结构示意图,而RuntimeException为运行异常,又是Exception中的重点学习内容,一般在我们平时编程中很有可能会遇到,1.2JVM默认处理异常方法...原创 2021-01-20 15:49:02 · 317 阅读 · 0 评论 -
JavaSE基础——(17)Set集合
目录一、HashSet1.1HashSet概述和使用1.2HashSet存储自定义对象1.3LinkedHashSet的概述和使用1.4随机数练习1.5输入重复字符剔除练习1.6去除List中重复字符练习二、TreeSet2.1TreeSet概述与使用2.2TreeSet存储自定义对象(按照姓名排序)2.3TreeSet存储自定义对象(按照姓名长度排序)2.4使用比较器进行构造TreeSet对象2.5TreeSet总结2.6练习一、HashS.原创 2021-01-18 21:04:50 · 207 阅读 · 0 评论 -
JavaSE基础——(18)Map集合
一、Map集合1.1Map集合概述java中Map用于保存具有映射关系的数据,Map集合里保存着两组值,一组用于保存Map的key,另一组保存着Map的value,Map是一个将键值映射到值的接口,一个映射不能包含重复的键值,每个键最多映射到一个值。1.2Map集合与Collection集合的区别Map存储的是两组值,而Collection是一组值 Map的键是唯一的,Collection的子接口Set键是唯一的 Map集合的数据结构值针对键有效,和值无关;而C...原创 2021-01-18 20:41:29 · 209 阅读 · 1 评论 -
JavaSE基础——(16)List集合
一、去除ArrayList重复字符串import java.util.ArrayList;import java.util.Iterator;public class ListTest { public static void main(String []args){ ArrayList list=new ArrayList(); list.add("a"); list.add("a"); list.add("b...原创 2021-01-17 15:38:06 · 190 阅读 · 0 评论 -
JavaSE基础——(15)Colletion集合
一、对象数组的概述和使用需求:现在有五个学生对象,将五个学生信息存储进数组中,并输出信息,public class Collection { public static void main(String []args){ Student []stu=new Student[5];//创建引用数据类型数组 stu[0]=new Student("学生1",18); stu[1]=new Student("学生2",19); ...原创 2021-01-15 14:34:35 · 172 阅读 · 0 评论 -
JavaSE基础——(14)正则表达式与常用工具类
目录一、正则表达式1.1正则表达式的概述1.2字符类1.3预定义字符类1.4数量词1.5给定字符串数字排序练习1.6正则表达式的替换功能1.7正则表达式的分组功能1.8Pattern和Matcher的区别1.9正则表达式的获取功能二、Math类三、Random类四、System类五、BigInteger类六、BigDecimal类七、Date类八、SimpleDateFormat类九、Calendar类9.1Calendar类的概述原创 2021-01-14 20:36:42 · 295 阅读 · 0 评论 -
JavaSE基础——(13)StringBuffer类与数组排序
一、StringBuffer类1.1StringBuffer类概述StringBuffer类是线程安全的可变字符序列,类似于String的字符串缓冲区,但是不能修改,但是可以通过某些方法调用可以改变该序列的长度和内容,String是一个不可变的序列,而StringBuffer是一个可变的字符序列。这里的线程安全对比的是StringBuilder,后者是线程不安全,速度会快一些,所以在使用的时候应该优先使用StringBuilder,因为他支持所有相同的操作。1....原创 2021-01-13 16:52:31 · 525 阅读 · 1 评论 -
JavaSE基础——(12)String类及常用方法
一、Scanner类1.1Scanner类的概述和方法要想了解String类,就不得不从Scanner类开始说起,Scanner类是用来获取用户输入的一个类,是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。在对Scanner类进行构造时,我们常常用到的是构造方法是传入一个标准IO流作为参数,Scanner(InputStream source)而在java中,System.in就是一个IO流,所以对应的语句是,Scanner sc = new Sc...原创 2021-01-12 16:22:49 · 309 阅读 · 0 评论 -
JavaSE基础——(11)Object类及常用方法
目录一、Object类概述二、getClass方法三、toString方法四、equals方法我们在进行java开发时,不需要从最底层开始编写自己的程序,java已经提供给我们了一些可以使用的类,这些类将底层的实现封装起来了,我们也不需要关心这些类如何实现的,只需要知道如何使用即可。一、Object类概述Object类是所有类层次结构的跟类,所有类都直接或者间接继承自该类,当用户定义了一个自己的类时,如果没有显示指出是继承哪个类的,那么这个类就是默认继承Object.原创 2021-01-07 20:03:04 · 135 阅读 · 0 评论 -
JavaSE基础——(10)面向对象之权限修饰符与匿名内部类
一、package关键字的概述及作用在java的学习过程中,我们会遇到各种各样的类,如果类的数量过多,我们很难去管理,而包的作用,就是将字节码(.class)进行分类存放原创 2021-01-07 15:50:29 · 172 阅读 · 0 评论 -
JavaSE基础——(9)面向对象之多态、抽象类和接口
一、多态1.1多态概述多态即事务存在的多种形态,同一个行为具有多个不同表现形式或形态的能力。1.2多态的前提要有继承关系 要有方法的重写 要有父类引用指向子类对象我们用一个例子来体会多态的用法:public class Main { public static void main(String[] args){ Employee e1=new Employee(); System.out.println(e1.getSalary...原创 2021-01-05 16:35:54 · 198 阅读 · 2 评论 -
JavaSE基础——(8)Java面向对象之继承与方法
一、代码块在java中被大括号{}括起来的代码被称为代码块。根据位置和声明的不同,一般代码块可以分为:局部代码块:在方法中出现;限定变量生命周期,及早释放,提高内存利用率 构造代码块:在类中方法外出现; 多个构造方法中相同的代码存放到一起,每次调用构造都执行该代码块,并且在构造方法前执行 静态代码块:在类中方法外出现,加上static修饰,随着类的加载而加载,且只执行一次,用于类的初始化,一般用来加载驱动(静态代码块优先于主方法执行) 在类中方法外出现,加上static修饰,随着 ...原创 2020-11-09 15:50:14 · 128 阅读 · 0 评论 -
Java——JDK中文api帮助文档(1.6,1.7,1.8版本)
一、JDK1.6链接:https://pan.baidu.com/s/1gPd6TI2exVY-nCiuUeHYwQ提取码:mm72二、JDK1.7链接:https://pan.baidu.com/s/10RqkK1b1Zw_4YmtSHsiIZg提取码:p194三、JDK1.8链接:https://pan.baidu.com/s/1-u_eQBmHSLswCtXy8_m3lw提取码:8b9b...原创 2020-11-08 18:59:12 · 2477 阅读 · 0 评论 -
JavaSE基础——(7)Java面向对象之基础概念、构造方法与静态static
一、面向对象的基本概念面向对象程序设计是当今主流的程序设计范型,它取代了之前的结构化和面向过程编程。Java就是一个非常典型的面向对象的语言。面向对象的程序是由对象组成的,每个对象都有自己的特定功能方法。通过这些隐藏在对象内的方法相互组合最后完成程序的功能。比如同样是实现一个简单的Web浏览器,可能会需要大约2000个过程,这些过程可能需要对很多全局变量进行操作;如果采取面向对象的方法,只需要大约100个类,每个类里面实现20个方法。面向对象的方法容易调错,也可以...原创 2020-11-08 18:35:37 · 122 阅读 · 0 评论 -
JavaSE基础——(6)Java数组
一、数组概述与定义数组是用来存储多个同种数据类型变量的一个容器集合。存储的数据类型不仅可以包括基本数据类型,也可以存储引用数据类型。数组定义的格式一般如下:数据类型 [] 数据名=new 数据类型[数组长度]or数据类型 数据名[]=new 数据类型[数组长度]二、数组的初始化数组的初始化就是为数组开辟一段连续的内存空间,并且为每个数组元素赋予值。初始化一般有两种方式:静态初始化和动态初始化。2.1动态初始化动态初始化的格式一般为:int a...原创 2020-11-07 21:04:55 · 203 阅读 · 0 评论 -
JavaSE基础——(5)Java的方法函数
Java中的方法类似于C和C++的函数,就是实现某个功能的代码块,但是因为java中不存在类外独立存在的函数,这些函数都被描述为某个类的方法,所以在Java中用方法来称呼更贴切,通过类调用方法完成某个功能,下面我们介绍一下Java中的方法:一、方法概述和格式说明什么是方法,和C、C++描述的函数相同。对于一些常用的,比较复杂的可以打包称为一个整体的代码块,我们将他们放在一个大括号里,然后给这个代码块起一个名字,方便其他地方对该方法进行调用。方法增强了代码的复用性。...原创 2020-11-04 17:55:51 · 120 阅读 · 0 评论 -
JavaSE基础——(4)顺序、选择、循环结构与控制跳转语句
Java中的流程控制语句即可以控制程序的执行流程。一般可以分为三类:顺序结构 选择结构 循环结构一、顺序结构顺序结构非常简单,一行一行地运行代码。从上向下,依次执行。我们用下列代码测试顺序结构的执行步骤:System.out.println(1);System.out.println(0);System.out.println(2);System.out.println(4);下面是执行的结果:二、选择结构选择结构一般分为:if语句 swit.原创 2020-11-04 09:50:41 · 298 阅读 · 0 评论 -
JavaSE基础——(3)Java的键盘录入
为了能让程序中的数据更灵活,可以让用户自己输入想要的数据,我们需要实现键盘输入数据给程序,然后让程序运行得到结果。(相比与C++的输入命令”>>“,Java的键盘输入感觉麻烦很多,可能这就是面向对象吧)在Java中键盘录入一般有3种方法:一、System.in方法和System.out方法我们直接用System的in和out方法进行键盘录入,代码如下:import java.io.IOException;public class Main { publ.原创 2020-11-03 17:07:53 · 754 阅读 · 0 评论 -
JavaSE基础——(2)Java的进制运算与数据类型
一、常量的概述与使用和C++一样,Java中的常量在定义之后它的值就不可以发生改变。java中的常量分为字面值常量和自定义常量字面值常量有以下几种1、字符串常量:用双引号括起来的内容2、整数常量:所有整数3、小数常量:所有小数4、字符常量:用单引号括起来的内容,里面只能放单个数字、字母或者符号5、布尔常量:true和false6、空常量:null二、进制进制即进位制,是用来计数的一种方法。二进制:01即逢二进一,在计算机中机器码就是二进制表示的,因为.原创 2020-11-02 15:21:28 · 413 阅读 · 0 评论 -
JavaSE基础——(1)jdk安装与标识符
研一期间了解了一下实验室师兄师姐找工作的方向,发现有很多都是找的Java方向的。这让酷爱C和C++的我感觉有点失落,毕竟通过本科对这些语言的学习感觉平时使用最多的就是C++了,想面向对象就面向对象,不想面向对象就直接用C语言的语法,二者完美融合。但是Java就很麻烦,强行让你使用类对象,连main函数都要定义在类里面,在完成平时一些作业的时候写个类就很耗时,明明几个函数就解决的事非得复杂化,但是想想公司开发一些比较大的项目确实也需要这种类对象来进行模块功能划分。没有办法只能硬着头皮学,再加上和师原创 2020-11-01 13:47:11 · 234 阅读 · 2 评论