![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 84
致力打造优质散装代码
zgDaren
最好的代码需要最歪的猴子
展开
-
Java流程控制语句
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言提示:这里可以添加本文要原创 2020-10-17 18:35:32 · 1462 阅读 · 8 评论 -
Apache POI操作Excel文件
Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用POI操作Excel文件。maven坐标:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14<原创 2022-04-16 11:13:29 · 178 阅读 · 0 评论 -
SpringMVC的入门及数据响应(配置文件版)
SpringMVC的数据相应SpringMVC的数据响应方式页面跳转直接返回字符串通过ModelAndView对象返回回写数据直接返回字符串返回对象或集合页面跳转直接返回字符串形式直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转通过ModelAndView对象返回web层 @RequestMapping(value = "/quick1") public ModelAndView save1(){ //Model:模型,作用封装数据,原创 2021-11-02 23:26:34 · 304 阅读 · 0 评论 -
基础加强 Junit反射注解
Junit单元测试测试分类黑盒测试:黑盒测试又叫功能测试、数据驱动测试或给予需求规格说明书的功能测试。这种测试注重于测试软件的功能性需求。白盒测试:白盒测试又称结构测试、逻辑驱动测试或基于程序代码内部结构的测试。此时,需要深入考察程序代码的内部结构、逻辑设计等等。白盒测试需要测试工程师具备很深的软件开发工地,精通相应的开发语言,一般的软件测试工程师难以胜任该工作。Junit使用步骤 白盒1、定义一个测试类(测试用例)测试类名:被测试类名+Test包名:xxx.xxx.xx.Test2、定义测原创 2021-08-07 15:55:50 · 238 阅读 · 0 评论 -
JDK8新特性
常用函数接口函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。备注:“语法糖"是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是"语法糖"。从应用层面来讲,Java中的Lambda可以被当做是匿名内部类的“原创 2021-08-04 17:34:18 · 441 阅读 · 0 评论 -
网络-编程
网络通信协议TCP/IPUDP耗资少,效率高,可能会丢失一两个数据包TCPTCP协议是“面向连接”的通信协议,即传输数据前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。三次握手三次握手:TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠。第一次握手,客户端向服务器端发出连接请求,等待服务器确认。第二次握手,服务器端向客户端回送一个响应,通知客户端收到了连接请求。第三次握手,客户端再次向服务器端发送确认信息,原创 2021-08-03 09:03:08 · 63 阅读 · 0 评论 -
File类-递归-IO流
File类java.io.File类文件和目录路径名的抽象表示形式Java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用File类对文件和文件夹进行操作我们可以使用File类的方法创建一个文件/文件夹删除文件/文件夹获取文件/文件夹判断文件/文件夹是否存在对文件夹进行遍历获取文件的大小File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法重点:file:文件 directory:文件夹/目录 path:路径File类的静态成员变量static原创 2021-08-02 00:08:35 · 142 阅读 · 1 评论 -
线程池的使用-定时任务
线程池概念﹔其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。线程池的底层原理线程池的使用线程池:JDK1.5之后提供的Java.util.concurrent.Executors:线程池的工厂类,用来生成线程池Executors类中的静态方法:static ExecutorService newFixedThreadPool(int nThreads)创建一个可重用固定线程数的线程池参数:int nThreads:创建原创 2021-07-26 14:01:08 · 2074 阅读 · 0 评论 -
线程通信(等待唤醒机制)-生命周期
线程间等待唤醒机制原创 2021-07-26 12:21:12 · 166 阅读 · 0 评论 -
线程同步机制的三种方法
线程安全如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。模拟售票案例创建3个线程,同时开启,对共享的票进行出售public class Demo01Ticket { public static void main(String[] args) { //创建Runnable接口的实现类对象 RunnableImpl run = new Runnable原创 2021-07-24 12:35:10 · 1302 阅读 · 0 评论 -
创建多线程的三种方式
并发与并行进程是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程线程调度:分时调度所有线程轮流使用CPU的使用权,平均分原创 2021-07-24 01:55:53 · 3157 阅读 · 0 评论 -
Java异常
异常概念异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是︰异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。异常指的并布是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行.异常体系异常机制其实是帮助我们找到程序中的问题,异常的根类是jav原创 2021-07-23 14:27:12 · 263 阅读 · 0 评论 -
Map集合
Map集合概述Map<K,V> 将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射到一个值Map集合的特点:1、Map集合是一个双列集合,一个元素包含两个值(一个key,一个Value)2、Map集合中的元素,key和value的数据类型可以相同,也可以不同3、Map集合中的元素,key是不允许重复的,value是可以重复的4、Map集合中的元素,key和value是一一对应的HashMapjava.util.HashMap<k,v>集合,implem原创 2021-07-22 13:54:52 · 922 阅读 · 0 评论 -
不可变集合-Stream流
java.util.Collection是集合工具类,用来对集合进行操作public static boolean addAll(Collection c, T…elements):往集合中添加一些元素public static void shuffle(List<?> list) 打乱顺序:打乱集合顺序public class Demo01Collections { public static void main(String[] args) { ArrayLi原创 2021-07-21 19:18:44 · 113 阅读 · 0 评论 -
Set集合-可变参数-Collections工具类
Setjava.util.Set接口 extends Collection接口Set接口的特点:不允许存储重复的元素,没有索引,没有带索引的方法,也不能使用普通的for循环进行遍历java.util.HashSet集合,implements Set接口HashSet特点:1、不允许存储重复的元素2、没有索引,没有带索引的方法,也不能使用普通的for循环遍历3、是一个无序的集合,存储元素和取出元素的顺序可能不一致4、底层是一个哈希表结构(查询的速度非常的快)public class Demo原创 2021-07-20 00:22:17 · 329 阅读 · 2 评论 -
List集合
list集合常用方法java.util.list接口 extends Collectionlist接口的特点:1、有序的集合,存储元素和取出元素的顺序是一致的(存储的是123,取出的123)2、有索引,包含了一些带索引的方法3、允许存储重复的元素List接口中带索引的方法(特有):public void add(int index,E element):将指定的元素,添加到该集合中的指定位置上public E get (int index):返回集合中指定位置的元素public E rem原创 2021-07-19 12:04:55 · 120 阅读 · 0 评论 -
泛型Generic、Java数据结构图解
栈队列数组链表红黑树原创 2021-07-17 19:46:26 · 100 阅读 · 0 评论 -
包装类、正则表达式、冒泡排序、Lambda表达式
泛型图解使用泛型的好处public class Demo01Generic { public static void main(String[] args) { show01(); show02(); } //创建集合对象,不使用泛型 //好处:集合不使用泛型,默认的类型就是object类型,可以存储任意类型的数据 //弊端:不安全,会引发异常 private static void show01() {原创 2021-07-17 17:30:19 · 209 阅读 · 0 评论 -
Collection
Java SE 提供了满足各种需求的API,在使用这些API之前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活的应用。Collection接口java.util.Collection接口所有单列集合的最顶层接口,里面定义了所有单列集合共性的方法任意的单列集合都可以使用Collection接口中的方法共性的方法:public boolean add(Ee):把给定的对象添加到当前集合中public void clear():清空集合中所有的元素。p原创 2021-07-16 14:00:31 · 122 阅读 · 0 评论 -
时间类的使用及对应格式的转换与计算
System类java.Lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在system类的API文档中,常用的方法有:public static long currentTimeMillis():返回以毫秒为单位的当前时间。public static void arraycopy(Object src, int srcPos, Object dest,int destPos, int length):将数组中指定的数据拷贝到另一个数组中。currentTimeM原创 2021-07-15 18:52:37 · 422 阅读 · 0 评论 -
Object StringBuilder Math Arrays System BigDecimal
java.long.Object类类Object是类层次结构的(最顶层)根类,每个类都使用Object作为超(父)类所有对象(包括数组)都实现这个类的方法toSting方法看一个类是否重写了toSting方法,直接打印这个类对应对象的名字即可如果没有重写toString方法,那么打印的就是地址值(默认)如果重写toString方法,那么就按照重写的方式打印主方法== 因为打印地址值没有意义,所以需要重写toString方法==public class Demo01ToString {原创 2021-07-14 16:47:00 · 82 阅读 · 0 评论 -
Java内部类
内部类的概念和分类如果一个事物的内部包含另一个事物,那么这就是一个类内部包部包含另一个类。分类:1、成员内部类2、局部内部类(包含匿名内部内)成员内部类成员内部类的定义格式:修饰符 class 类名称{修饰符 class 类名称{//…}//…}注意:内用外,随意访问;外用内,一定需要借助内部类对象。public class Body {//外部类 public class Heart{//成员内部类 public void beat(){原创 2021-07-12 21:35:21 · 114 阅读 · 0 评论 -
数组的深入浅出
数组的概念数组的概念:是一种容器,可以同时存放多个数据值数组的特点:1、数组是一种引用数据类型2、数组当中的多个数据,类型必须统一3、数组的长度在程序运行期间不可改变数组的初始化:在内存中创建一个数组,并且向其中赋予一些默认值两种常见的初始化方式:1、动态初始化(指定长度)2、静态初始化(指定内容)动态初始化数组的格式:数据类型[] 数组名称 = new 数据类型[数组长度];解释含义:左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型左侧的中括号:代表我是一个数组左原创 2021-06-09 17:03:14 · 142 阅读 · 0 评论 -
局部变量和成员变量使用区别
局部变量和成员变量1、定义的位置不一样【重点】局部变量:在方法内部成员变量:在方法的外部,直接写在类当中2、作用范围不一样【重点】局部变量:只有方法中才可以使用,出了方法不能使在使用成员变量:整个类全部可以通用3、默认值不一样【重点】局部变量:没有默认值,如果要想使用,必须手动进行赋值成员变量:如果没有赋值,会有默认值,规则和数组一样4、内存的位置不一样(了解)局部变量:位于栈内存成员变量:位于堆内存5、生命周期不一样(了解)局部变量:随着方法进栈而诞生,随着方法出栈而消失成员原创 2021-06-18 17:37:50 · 104 阅读 · 0 评论 -
常用API Scanner~Random
API(Application Programming Interface),应用程序编程接口。Scanner类Scanner类的功能:可以实现键盘输入数据,到程序当中引用类型的一般使用步骤:1、导包import 包路径.类名称;如果使用的目标类和当前类位于同一个包下,则可以省略导包语句不写只有Java.lang包下的内容不需要导包,其他的包都需要import语句2、创建类名称 对象名 = new 类名称();3、使用对象名.成员方法名()获取键盘中输入一个int数字:int num原创 2021-06-20 00:00:06 · 151 阅读 · 0 评论 -
接口 Interface
接口概述接口就是一种公共的规范标准,只要符合规范标准,就可以大家通用。接口就是多个公共的规范接口是一种引用数据类型,最重要的内容就是其中的,抽象方法如何定义一个接口public interface 接口名称{//接口内容}备注:.java–>.class换成了关键字interface之后,编译生成的字节码文件仍然是.java–>如果是java7,那么接口中可以包含的内容有:1、常量2、抽象方法如果是Java8,还可以额外包含有:3、默认方法4、静态方法如果是Jav原创 2021-07-05 23:44:19 · 863 阅读 · 0 评论 -
Java三大特性——继承性
继承概述继承性可以简单的理解为师父和徒弟的关系,徒弟可以继承师父所有的技能。继承主要解决的问题就是:共性抽取继承关系当中的特点:1、子类可以拥有父类的”内容“2、子类还可以拥有自己专有的内容继承的格式在继承的关系中,”子类就是一个类“,也就是说,子类可以被当作父类看待例如父类是员工,子类是讲师,那么”讲师就是一个员工“。关系:is-a定义父类的格式:(一个普通的类定义)public class 父类名称{//…}定义子类的格式:public class 子类名称 extends原创 2021-07-04 23:42:31 · 557 阅读 · 0 评论 -
常用API String类
字符串的概述和特点java.lang.String类代表字符串API当中说:java程序中的所有字符串字面值(如”abc”)都作为此类的实例实现其实就是说,程序当中所有的双引号字符串,都是String类的对象(就算没有new,也照样是)字符串的特点:1、字符串的内容用不可变【重点】2、正是因为字符串不可改变,所以字符串是可以共享使用的3、字符串效果上相当于char[]字符数组,但是底层原理是byte []字节数组创建字符串的常见3+1种方式三种构造方法:public String();/原创 2021-06-20 23:16:33 · 175 阅读 · 1 评论 -
JAVA方法入门
简单方法的使用方法其实就是若干语句的功能集合方法好比一个工厂蒙牛工厂 原料:奶牛、饲料、水产出物:奶制品参数(原料):就是进入方法的数据返回值(产出物):就是从方法中出来的修饰符 返回值类型 方法名称(参数类型 参数名称,…){方法题return 返回值;}修饰符:现阶段的固定写法 public static返回值类型:也就是方法最终产生的数据结果是什么类型方法名称:方法的名字,规则和变量一直,小驼峰参数类型:进入方法的数据是什么类型参数名称:进入方法的数据对应的变量名称原创 2021-06-07 12:01:00 · 196 阅读 · 0 评论 -
详解方法的重载
感谢传智播客官方大大方法重载对于功能类似的方法来说,因为参数列表不一样,却要记住那么多不同的方法名称,太麻烦方法的重载(Overload):多个方法的名称一样,但是参数列表不一样好处:只需要记住唯一的一个方法名称,就可以实现类似的多个功能方法重载与下列因素有关:1、参数个数不同2、参数类型不同3、参数的多类型顺序不同方法重载与下列因素无关:1、与参数的名称物馆2、与方法的返回值类型无关public class Demo01MethodOverload { public sta原创 2021-06-08 09:30:27 · 2519 阅读 · 0 评论 -
权限修饰符-抽象类-接口
概念如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法抽象方法和抽象类的格式抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束抽象类:抽象方法所在的类,必须是抽象类才行,在class之前写上abstract即可public abstract class Animal { //抽象方法,代表吃东西,具体吃什么不确定 public abstract void eat(); //这是普通的成员方法 public void no原创 2021-07-05 12:29:07 · 146 阅读 · 0 评论 -
Java三大特性——封装性
封装性在Java中的体现1、方法就是一种封装2、关键字private也是一种封装封装就是将一些细节信息隐藏起来,对于外界不可见public class Demo02Method { public static void main(String[] args) { int[] array = {3,15,25,20,100}; int max = getMax(array); System.out.println("最大值:" + max);原创 2021-06-19 14:47:56 · 605 阅读 · 0 评论 -
Java三大特性——多态性
extends继承或者implements实现,是多态性的前提原创 2021-07-11 21:15:20 · 102 阅读 · 0 评论 -
Java面向对象
面向对象和面向过程面向过程:当需要实现一个功能得时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。import java.util.Arrays;public class Demo01PrintArray { public static void main(String[] args) { int[] array = {10, 20, 30, 40, 50};原创 2021-06-18 17:32:38 · 474 阅读 · 0 评论 -
常用API ArrayList类
数组回顾定义一个数组,用来存储3个Person对象数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变如果数组的内容多了,数组就不能用了public class Demo01Array { public static void main(String[] args) { //首先创建一个长度为3的数组,里面用来存放Person类型的对象 Person [] array = new Person[3]; Person one = new原创 2021-06-20 12:43:26 · 227 阅读 · 0 评论 -
常用API static类及单例模式
Static于成员变量(属性)如果一个成员变量使用了Static关键字,那么这个变量不在属于对象自己,而是属于所在的类,多个对象共享一份数据原创 2021-07-03 23:19:06 · 183 阅读 · 0 评论