Java基础
文章平均质量分 66
Java语法基础
你好y
这个作者很懒,什么都没留下…
展开
-
Jmeter快速入门
Jmeter依赖于JDK,所以必须确保当前计算机上已经安装了JDK,并且配置了环境变量。原创 2023-05-19 15:05:06 · 498 阅读 · 0 评论 -
List.of 和 Arrays.asList 的区别
如果需要一个可更改的集合,可以把这个不可修改的集合传递到构造器。原创 2023-05-08 11:16:19 · 136 阅读 · 0 评论 -
为什么在static修饰的方法体中不能出现this和super限定符
一、1、static修饰的方法体属于类本身2、this限定符代表的是当前类的实例3、super限定符代表的是当前类的父类的实例4、static修饰的方法和变量在被编译时被初始化,被称为类级变量(属于类)5、this和super限定符代表的是实例,是在程序运行时被初始化,被称为对象级变量(属于对象)6、在程序执行过程中,二者不处于同一时间点二、1、static修饰的方法和变量属于类,只能由类名调用2、this和super代表实例,实例不能直接调用类变量或者类方法原文链接:https://b转载 2021-08-31 17:34:55 · 310 阅读 · 0 评论 -
Comparator和Comparable用法
package Linear.list;import java.util.Comparator;public class Student { private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; }原创 2021-08-18 10:19:05 · 90 阅读 · 0 评论 -
Junit,反射,注解
一、Junitjunit初始化方法:用于资源申请,所有测试方法再执行之前都会执行该方法@Beforepublic void init(){ 方法体}释放资源方法:在所有测试方法执行完毕之后,都会自动执行该方法@Afterpublic void close(){ 方法体}二、反射框架设计的灵魂。框架:半成品软件,可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制将成员变量封装为Filed对象,将构造方法原创 2021-07-13 11:38:32 · 98 阅读 · 0 评论 -
java函数式接口
一、函数式接口概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。 当然接口中可以包含其他的方法(默认,静态,私有)函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。备注:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是“语法糖”。从原创 2021-07-12 19:05:55 · 5639 阅读 · 1 评论 -
网络编程入门、TCP通信程序、文件上传案例
一、网络编程入门软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。网络通信协议网络通信协议: 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中原创 2021-07-11 19:15:23 · 365 阅读 · 2 评论 -
java文件过滤器
练习:递归打印多级目录:package com.itheima.demo01.Recursion;import java.io.File;public class Demo03Recursion { public static void main(String[] args) { File file = new File("C:\\Users\\大 大\\Desktop\\aaa"); getAllFile(file); } //定义一个方原创 2021-07-10 21:49:52 · 831 阅读 · 1 评论 -
缓冲流、转换流、序列流、打印流
一、缓冲流概述:缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。字节缓冲流构造方法public BufferedInputStream(InputStre原创 2021-07-10 21:47:51 · 118 阅读 · 1 评论 -
递归(递归打印多级目录,文件搜索(文件过滤))
递归递归的分类:直接递归和间接递归直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法注意事项:1、递归一定要有条件限定,保证递归能够停下来,否则会发生栈内存溢出2、在递归中虽然有限定条件,但是递归次数不能太多,否则也会发生栈内存溢出3、构造方法禁止递归(会编译报错)递归使用的前提: 当调用方法的时候,方法的主体不变,每次调用方法的参数不同,可以使用递归练习:递归打印阶乘package com.itheima.demo01.Recursion原创 2021-07-09 19:11:03 · 219 阅读 · 0 评论 -
java---字节流、字符流
一、IO概述:i:input o:output 流:数据(分为字符流和字节流)1个字符=2个字节 1个字节=8个二进制位IO的分类分为输入流和输出流,输入和输出是相对于内存来说的IO的流向说明顶级父类输入流输出流字节流字节输入流InputStream字节输出流OutputStream字符流字符输入流Reader字符输出流Writer二 、字节流字节输出流【OutputStream】java.io.OutputStream抽象类是表示字节原创 2021-07-09 19:03:45 · 147 阅读 · 0 评论 -
File类
一、File类概述:java.io.File` 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作java把电脑中的文件和文件夹(目录)封装为一个File类,我们可以使用File类对文件和文件夹进行操作。File类的方法:1、创建一个文件/文件夹2、删除一个文件/文件夹3、获取一个文件/文件夹4、判断文件/文件夹是否存在5、对文件夹进行遍历6、获取文件的大小File类是一个与系统无关的类,任何的操作系统都可以使用这个类的方法重点记住这三个单词:file:文件原创 2021-07-08 21:33:36 · 112 阅读 · 0 评论 -
等待与唤醒机制与线程状态
一、等待唤醒机制1.1线程间通信概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同。比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题。为什么要处理线程间通信:多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需要一些协调通信,以此来帮我们达到多线程共同操作一份数据。如何保证原创 2021-07-08 21:27:16 · 378 阅读 · 1 评论 -
线程池与Lambda表达式
一、线程池概述:我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?------线程池线程池概念**线程池:**其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。原创 2021-07-08 21:22:14 · 570 阅读 · 1 评论 -
如何创建多线程以及解决线程安全问题
多线程并发:指两个或多个事件在同一时间段内发生(交替执行)并行:指两个或多个事件在同一时刻发生(同时发生)(一起同行)注意:单核处理器的计算机肯定是不能并行的处理多个任务的,只能是多个任务在单个CPU上并发运行。同理,线程也是一样的,从宏观角度上理解线程是并行运行的,但是从微观角度上分析却是串行运行的,即一个线程一个线程的去运行,当系统只有一个CPU时,线程会以某种顺序执行多个线程,我们把这种情况称之为线程调度。线程与进程**进程:**是指一个内存中运行的应用程序,每个进程都有一个独立的内存原创 2021-07-08 21:03:12 · 387 阅读 · 1 评论 -
java基础---异常
异常异常是指程序在执行过程中,出现的非正常情况,最终导致JVM的非正常停止。异常本身是一个类,产生异常就是创建异常对象并抛出一个异常对象。java处理异常的方式是中断处理。异常指的并不是语法错误,语法错了,编译不会通过,不会产生字节码文件,根本运行不了。异常体系异常机制其实是帮我们找到程序中的问题,异常的根类是java.lang.Throwable,下面有两个子类java.lang.Error与java.lang.Exception。平时所说的异常指的是java.lang.Exception原创 2021-07-08 20:54:12 · 161 阅读 · 0 评论 -
Java--Debug
Debugdebug调式程序:可以让代码逐行执行,查看代码执行的过程,调式程序中出现的bug在行号的右边,鼠标左键点击,添加断点(每个方法的第一行,哪里有bug添加到哪里)程序会停留在添加的第一个断点处...原创 2021-07-06 20:37:12 · 78 阅读 · 0 评论 -
java集合实现斗地主案例
斗地主案例具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。单列实现(无序)案例分析:1、准备牌存储到一个集合中特殊牌:大王、小王其他52张牌:定义一个数组/集合,存储四种花色。定义一个数组/集合,存储13个序号。循环嵌套遍历两个数组/集合,组装52张牌package com.itheima_01;import java.util.ArrayList;import java.util.Collections;import java原创 2021-07-06 20:36:13 · 217 阅读 · 1 评论 -
java---包装类
包装类基本数据类型的数据使用起来非常的方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。在包装类中可以定义一些方法用来操作基本类型的数据概述:Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:装箱概念:把基本类型的数据,包装到包装类中(基本数据 ——> 包装类)静态方法Intege原创 2021-07-06 20:34:24 · 56 阅读 · 1 评论 -
Map集合及其子类相关用法
Map集合概述java.util.Map<k,v>集合Map集合的特点:1、Map集合是一个双列集合,一个元素包含两个值(key,value)2、Map集合中的元素,key和value的数据类型可以相同也可以不同3、Map集合中的元素,key是不允许重复的,但是value可以重复4、Map集合中的元素,key和value一一对应Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map中的集合,元素是成对存在的(理解为夫妻)原创 2021-07-06 20:31:08 · 600 阅读 · 1 评论 -
数据结构(树、链表、数组、栈、队列)
数据结构树形结构有平衡树、不平衡树、二叉树、红黑树链表链表查询慢:链表中的地址不是连续的,每次查询元素,都必须从头开始查询增删快:链表结构,增加/删除一个元素,对链表的整体结构没有影响,所以增删快链表中的每一个元素也称之为一个节点,一个节点包含了一个数据源(存储数组),两个指针域(存储地址)链表又分为单向链表和双向链表,单向链表:链表中只有一条链子,不能保证元素的顺序(存储的元素和取出元素的顺序有可能不一致)双向链表:链表中有两条链子,有一条是专门记录元素的顺序,是一个有序的集合数原创 2021-07-06 20:28:31 · 222 阅读 · 2 评论 -
List接口及子类(ArrayList、LinkedList)Set接口及其子类(HashSet、LinkedHashSet)、可变参数
List接口java.util.List接口继承自Collection接口,List接口特点:1、有序的集合,存储元素和取出元素的顺序是一致的(存储123 取出123)2、有索引,包含了一些带索引的方法3、允许存储重复的元素List接口中常用方法public void add(int index, E element): 将指定的元素,添加到该集合中的指定位置上。public E get(int index):返回集合中指定位置的元素。public E remove(int index原创 2021-07-05 19:55:32 · 156 阅读 · 1 评论 -
集合(Collection、迭代器、Collections集合工具类)
集合集合和数组的区别1、数组长度是固定的,集合是可变的2、数组可以存基本数据类型还有对象,但是集合存储的都是对象Collection共性方法:/*Collection是所有单列集合的父接口 * public boolean add(E e)`: 把给定的对象添加到当前集合中 。 * `public void clear()` :清空集合中所有的元素。 * `public boolean remove(E e)`: 把给定的对象在当前集合中删除。 * `public boolean co原创 2021-07-05 18:48:57 · 68 阅读 · 1 评论 -
Java基础---泛型
泛型概述:泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候,可以使用泛型。泛型可以看出是一个变量,用来接收数据类型E e:Element元素T t:Type 类型ArrayList集合在定义的时候,不知道集合中都存储什么类型的数据,所以使用泛型。E:未知的数据类型使用泛型的好处:当创建集合对象,不使用泛型时:好处:集合不使用泛型,默认为Object类型,可以存储任意类型的数据弊端:不安全,容易引发异常创建集合对象,使用泛型好处:1、避免了类型转换的麻烦,存储什么类型,取原创 2021-07-05 18:43:27 · 107 阅读 · 1 评论 -
内部类(成员、局部、匿名)
内部类概述:内部类就是在一个类中定义一个类。举例:在一个类A的内部定义一个类B,类B就被称为内部类内部类定义格式public class 类名{ 修饰符 class 类名{ }}内部类的访问特点内部类可以直接访问外部类的成员,包括私有外部类要访问内部类的成员,必须创建对象``package com.itheima_01;/*## 内部类的访问特点 * 内部类可以直接访问外部类的成员,包括私有 * 外部类要访问内部类的成员,必须创建对象*/public原创 2021-07-04 20:54:16 · 93 阅读 · 1 评论 -
String与StringBuilder及相关案例
API概述:(Application Programming Interface):应用程序编程接口例子解释:编写一个机器人程序去控制机器人踢足球,程序需要向机器人发出向前跑、向后跑、射门抢球等各种命令。机器人厂商- -定会提供一些用于 控制机器人的接口类,这些类中定义好了操作机器人各种动作的方法。其实,这些接口类就是机器人厂商提供给应用程序编程的接口,大家把这些类称为APIJava API:指的就是JDK中提供的各种功能的java类,这些类将底层的实现类封装起来。接受变量的快捷键:ct原创 2021-07-04 20:51:50 · 166 阅读 · 1 评论 -
System类
System类修饰符和类型方法描述static longcurrentTimeMillis()返回当前时间(以毫秒为单位)。static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length)将指定源数组中的数组从指定位置复制到目标数组的指定位置。long t=System.currentTimeMillis(); //返回当前时间(以毫秒为单位)publ原创 2021-07-04 20:49:06 · 48 阅读 · 0 评论 -
Object类(toString方法,equals方法)
Object类(toString方法,equals方法)因为打印对象的地址值没有意义,所以要重写toString方法,来打印对象的属性。toString方法看一个类是否重写了toString方法,直接打印这个类对应对象的名字即可。如果没有重写toString方法,那么打印的就是对象的地址值(默认)。如果重写toString方法,那会按照重写打印equals方法Object类equals方法的源码:public boolean equals(Object obj){ retur原创 2021-07-04 20:47:40 · 111 阅读 · 0 评论 -
Calender类
Calender类Calendar类是一个抽象类,所以不能直接创建对象,可以用它的静态方法getInstance(),该方法返回了Calender类的子类对象 public static void main(String[] args) { Calendar c=Calendar.getInstance();//多态 System.out.println(c); }注:西方的月份是从0-11A.创建对象方式Calendar C = Calendar.get原创 2021-07-04 20:46:32 · 781 阅读 · 0 评论 -
java基础---Date
Date表示特定的瞬间,精确到毫秒。毫秒:千分之一秒,1000毫秒=1秒毫秒值的作用:可以对时间和日期进行计算例如:2099-01-03 到 2189-01-01 中间一共有多少天可以把日期转换为毫秒进行计算,计算完毕,再把毫秒转换为日期将日期转换为毫秒当前的时间:System.currentTimeMillis()时间原点(0毫秒):1970年1月1日 00:00:00(英国格林威治)就是计算当前日期到时间圆点之间一共经历了多少毫秒public class DateDemo01 {原创 2021-07-04 20:42:57 · 149 阅读 · 4 评论 -
抽象类的基础
抽象类概述:一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类抽象类的特点1、抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类2、抽象类不能实例化那么抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态3、抽象类的子类要么重写抽象类中的所有抽象方法,要么是抽象类抽象类的成员特点1、成员变量可以是变量,也可以是常量2、构造方法有构造方法,但是不能实例化那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化3、成员方法可以原创 2021-06-26 16:22:14 · 93 阅读 · 0 评论 -
关键字(Static、final),多态,接口基础知识
Static关键字``package com.itheima_06;public class Student { String name; int age; //共享变量 static String univserty;}``package com.itheima_06;public class StaticDemo { public static void main(String[] args) { //共享变量,通过类名原创 2021-06-26 16:20:12 · 127 阅读 · 0 评论 -
Java基础--方法
方法定义格式:public static void 方法名称(){方法体}调用格式:方法名称();定义方法的注意事项:1.方法定义的先后顺序无所谓。2.方法定义必须是挨着的,不能在一个方法的内部定义另外一个方法。3.方法定义后,要想执行必须要调用。定义方法的完整格式:修饰符(public static) 返回值类型 方法名称(参数类型 参数名称,.......){方法体(方法需要做的事情,若干行代码)return 返回值;}1.方法名称和变量一样,原创 2020-09-21 11:07:54 · 167 阅读 · 0 评论