
java
文章平均质量分 87
java学习
要买苹果吗?
这个作者很懒,什么都没留下…
展开
-
反射以及常用api
反射动态语言是一类可以在程序运行过程中改变其结构的语言。比如说定义的方法、对象、一些功能代码可以在程序运行中被加载进去,从而达到修改或者删除已有的方法和数据动态语言:JavaScript(脚本语言)、PHP 、Python、C#等等静态语言与动态语言相比,运行时程序结构不发生改变的语言就是静态语言。 如C、C++、Java等Java虽不是动态语言,但是称之为“准动态语言”,可以利用反射机制来动态的获取类结构信息并且修改类结构信息。Java的动态性使开发更加灵活。反射概述原创 2021-02-24 09:02:26 · 211 阅读 · 1 评论 -
JUnit单元测试
单元测试测试概述在我们编写代码的时候,开发了很多功能,我们需要对这些已经开发好的功能提前进行测试,检测功能方法是否有漏洞,是否有bug,这个时候我们可以使用Junit单元测试对我们开发的代码进行测试。Junit是Java语言的单元测试框架,属于第三方的一个工具,一般情况下我们需要导入相应的jar包,对于目前使用的集成开发工具自带的,我们今天是以Idear开发工具为主Junit属于白盒测试测试分类黑盒测试:大多数测试的细节隐藏起来,通常使用的一些软件进行测试白盒测试:大多数是需要写一些代码原创 2021-02-24 08:59:56 · 286 阅读 · 0 评论 -
IO流
IO概述什么是IO?[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SdlA2fcp-1608166752813)(E:\documents\day28_IO\IO流分类.png)]Java中I/O的操作主要是靠java.io包下面的类和接口来实现的,进入输入、输出操作。输入也可以叫做读取数据,输出也可以叫做写入数据。IO分类根据数据的流向分为:输入流和输出流输入流:把数据从其他设备上读取到内存当中的流。输出流:把数据从内存当中写入到其他设备上的流。根据数据原创 2020-12-17 09:01:12 · 145 阅读 · 0 评论 -
线程,synchronized,lock锁,线程状态,生产者与消费者,线程池,lambda表达式
同步方法同步方法:使用synchronized修饰的方法,就叫做同步方法,保证A线程执行该方法的时候,其他线程只能在方法的外面等待着,排队。格式:public synchronized void method() { // 可能会产生线程安全问题的代码}备注:同步锁是谁? 对于非static方法,同步锁就是this 对于static方法,我们使用当前方法所在类的字节码对象(类名.class)同步方法代码示例如下:@Override pu原创 2020-12-11 23:14:20 · 138 阅读 · 0 评论 -
线程
创建线程类 java使用java.lang.Thread类代表线程,所有的线程对象都必须是Thread类或者Thread类的子类的实例。每个线程的作用是完成一定的任务,实际上就是执行一段程序流,java使用线程执行体来代表这段程序流。java中通过继承Thread类来创建并启动多线程,步骤如下: 1.创建一个Thread类的子类 2.在Thread类的子类当中重写Thread类的run方法,设置线程任务(开启线程需要你做什么事情?) 3.创建Thread类的子类对象原创 2020-12-10 22:48:47 · 131 阅读 · 0 评论 -
异常
异常异常的概念 异常,就是不正常的意思。在生活中,医生说,你的身体某个部位出现异常了,该部位和正常情况不一样,该部位的功能将会受到影响,在程序中的意思是:异常:指的是在程序的运行过程中,出现的非正常情况,最终会导致JVM的非正常停止。在Java等面向对象的编程语言中,异常本身就是一个类,产生异常就是创建异常对象并抛出了一个异常对象。Java处理异常的方式是中断处理。备注:异常指的并不是语法错误,语法错了,编译无法通过的,不会产生字节码文件,根本不会运行。异常体系异常机制其实是帮助我原创 2020-12-08 21:26:13 · 99 阅读 · 1 评论 -
Comparable和Comparator两个比较器,map集合
Comparator接口比较器 Collections工具集中的sort() public static <T> void sort(List<T> list) public static <T> void sort(List<T> list,Comparator<? super T> c) Comparator接口在java.util包下面,排序是Comparator需要实现的功能之一,该接口代表的是是一个比较器,比较原创 2020-12-08 19:37:16 · 314 阅读 · 1 评论 -
泛型,数据结构,List
泛型的通配符 当使用泛型类或者泛型接口,传递的数据中,泛型的类型不确定,可以通过通配符<?>表示。一旦程序当中使用泛型的通配符后,只能使用Object类中的共性的方法,集合中元素自身方法无法使用。通配符的基本使用 泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?代表未知的通配符。 此时只能接收数据,不能往该集合当中存储数据。代码示例:public static void main(String[] args) { // 可以存储整数的集合原创 2020-12-03 20:43:10 · 215 阅读 · 0 评论 -
List,Set,可变参数,Collections工具类
LinkedList集合 java.util.LinkedList集合数据存储的结构底层是一个链表结构,是一个双向链表结构,方便元素的添加和删除。我们在开发中对一个链表集合中的元素大量的都是采用首尾结点操作(添加和删除):常用的API方法如下:public void addFirst(E e):将指定的元素添加此列表的开头。public void addLast(E e):将指定的元素添加此列表的末尾。public E getFirst():获取此列表的首节点元素public E getL原创 2020-12-03 20:37:34 · 146 阅读 · 0 评论 -
Connection集合,泛型
Collection集合集合概述 前面我们已经学习过ArrayList集合了,那么集合它到底是一个什么呢? 集合 :集合是Java中提供的一种容器,可以用来存储多个数据。集合和数组既然都是容器,他们有啥区别? 数组的长度是固定的,集合的长度是可变的 数组中存储的是同一种数据类型的元素,可以存储基本数据类型也可以存储引用数据类型, 集合存储的都是对象,而且对象的数据类型可以不一致。在开发当中一般当对象较多的时候,使用集合来存储对象。原创 2020-12-01 22:21:10 · 182 阅读 · 0 评论 -
Calender类和System类及其常用方法
Calendar类概念 java.util.Calendar 日历类,抽象类,在Date类后出现的,替换掉了很多Date类中的方法。该类将所有的可能用到的时间信息封装为静态成员变量,通过类名.静态成员变量获取时间字段值获取方式 由于Calendar类是一个抽象类,语言敏感性,Calendar类并不是直接创建对象来获取时间属性值,而是通过静态方法创建,返回子类对象。静态方法如下: public static Calendar getInstance():使用默认时区和默认的语言环原创 2020-11-30 23:18:01 · 265 阅读 · 2 评论 -
权限修饰符,内部类,匿名内部类
权限修饰符 #### 概述 在Java当中提供了四种权限修饰符,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限。 public: 公共的 protected: 受保护的 (default): 默认不写 private:私有的不同的权限修饰符有不同访问能力publicprotected(default)private同一类中√√√√同一包下不同类中√√√×不原创 2020-11-28 09:12:37 · 84 阅读 · 0 评论 -
多态学习,final修饰符
多态概述 多态是继封装性,继承性之后,面向对象的第三大特性。定义 多态:是指同一行为,具有多个不同的表现形式。 生活中,比如跑的动作,猫,狗,大象跑起来的动作都是不一样的,再比如飞的动作,昆虫、鸟类、人造飞机,飞起来的动作内容都是不一样的。可见,同一行为,通过不同的事物,可以表现出不同的形态。多态,描述的就是这样的一种状态。前提 继承或者实现【二选其一】 父类的引用指向子类的对象 【格式体现】原创 2020-11-25 22:08:57 · 227 阅读 · 1 评论 -
super、this补充,抽象类,接口,接口中的静态方法、默认方法、抽象方法,接口与抽象类的异同点
super和this的含义super:代表父类的存储空间标识(可以理解为父类的引用)this:代表当前对象的引用(谁调用就是代表谁)super和this的用法 super访问父类的成员super.成员变量;super.成员方法();访问父类的构造方法super(...) 父类的构造方法3.继承关系中,父类的构造方法的访问特点:- 子类构造方法当中有一个默认的隐式的super()调用,所以一定是先调用父类的构造,后执行的子类构造- 子类构造可以通过super关原创 2020-11-24 19:49:01 · 279 阅读 · 1 评论 -
面向对象的三大特征—继承,this、super关键字,方法重写,以及方法重写与重载的区别
面向对象的三大特征—继承 抽象类继承继承后的特点—成员方法成员方法不重名 如果子类父类中出现不重名的成员方法,这时的调用是没有【任何影响的】,对象调用方法时,会先在子类中查找有没有对应的方法,若子类中存在该方法那么就执行子类中的方法,若子类当中不存在该方法那么会执行父类当中的成员方法。public class Fu { int num = 10; // 展示 public void show() { Sys..原创 2020-11-24 19:43:16 · 106 阅读 · 1 评论 -
Arrays类,Math类,面向对象------继承
Arrays类概述 java.util.Arrays 此类主要是用来操作数组,里面提供了很多的操作的api方法,如【排序】和【搜索】功能。其所有的方法均为静态方法,调用起来非常简单操作数组的方法 public static String toString(int[] arr):返回指定数组内容的字符串表示形式。public static void main(String[] args) { // 初始化一个int类型的数组 动态初始化只指定长度,不指定内容,而..原创 2020-11-20 22:20:52 · 234 阅读 · 1 评论 -
String类及其常用方法,static关键字
String类的概述 【重点】概述 java.lang.String类代表字符串,java程序中的所有的字符串文字,"abc"都可以看做是String类的实例。 程序当中的所有的双引号字符串,都是String类的对象。(没有new,也是对象)。字符串的特点: 字符串的内容永远不可改变。【重点】 正是因为字符串的内容永远不可改变,所有字符串是可以共享使用的。 字符串效果上相当于是char[]字符数组,但是底层原理是b原创 2020-11-19 22:06:02 · 222 阅读 · 0 评论 -
常用API,ArrayList以及String学习
API概述概述 API(Application Programming Interface) 应用程序编程接口。Java API对于程序员来说就是一本可以检索查找的【字典】,是JDK官方提供给程序开发者使用类的说明文档。这些类将底层的代码封装起来,我们不需要关注这些类底层是如何实现的,我们只需要知道这些类是如何使用的。平常开发使用JDK类库的时候,通过查阅API的方式进行的。API的使用步骤 打开帮助文档 点击显示,找到索引,找到输入框原创 2020-11-18 19:43:27 · 125 阅读 · 0 评论 -
类与对象,以及封装
类与对象 #### 什么是类 类:是一组相关【属性】和【行为】的集合。可以把类看成一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。 现实中,描述一类事物: 属性:描述该类事物的一种【状态】信息。 行为:描述该类事物具备的功能,能够做什么。什么是对象 对象:就是一类事物的具体的体现。对象是类的一个【实例】,必然具备该类事物的属性特征和行为特征。类与对象的关系 类是对一类事物原创 2020-11-17 18:56:58 · 218 阅读 · 0 评论 -
数组反转,二维数组以及方法的学习
数组的反转 数组的反转:数组中的元素颠倒顺序,例如:原始数组为1,2,3,4,5 数组反转之后为 5,4,3,2,1 思路:本质是考察交换两个变量的值 两种方式 实现反转,就需要将数组最远端的元素和最近端位置互换 定义两个变量,保存数组的最小索引和数组的最大索引 让两个索引上的元素交换位置 最小的索引变量++,最大的索引变量–,再次交换位置..原创 2020-11-13 22:51:49 · 1020 阅读 · 1 评论 -
数组学习
数组定义和访问 #### 容器的概念 容器:就是将多个数据存储到一起,每个数据称为该容器的元素。 生活中的容器:水杯、excel、教室 #### 数组概念 数组概念:数组就是存储数据长度固定的容器,保证每个数据的数据类型要一致。 #### 数组的定义 #### 方式一: 格式: 数组存储的数据类型[] 数组名称 = new 数组存储的数据类型[长度(正整数)];原创 2020-11-12 20:44:23 · 158 阅读 · 0 评论 -
位运算符+选择控制语句+Scanner类和Random类的使用+循环结构(for、while、do-while)+跳转语句 (break、continue)
位运算符运算符含义示例<<左移5 << 2 = 20 —> 5 * 2^2 = 5 * 4 = 20>>右移5 >> 1 = 2 —> 5 / 2^1 = 5 / 2 = 2>>>无符号右移5 >>> 1 = 2—> 5 / 2^1 = 5 / 2 = 2&与运算(只要有一个为0,运算结果则为0,否则为1)5 & 3 = 1原创 2020-11-11 23:07:46 · 160 阅读 · 1 评论 -
java基础
添加注释 注释:就是对代码的解释和说明,其目的就是其他开发者能轻松的了解代码。注释是不影响程序的编译和运行。 java中的注释有三种: 单行注释以 //开头 换行结束 多行注释以"/*“开头,以”*/"结束 文档注释以"/**“开头,以”*/"结束标识符 标识符:一般是指在程序中,我们自定义的内容。比如说类的名字(HelloWorld)、方法的名字(main)和变量的名字等等,都是标识符。原创 2020-11-11 10:06:20 · 106 阅读 · 1 评论 -
集合转数组和数组转集合
代码:package com.zhiyou100.test;import org.junit.Test;import java.util.*;public class TestArrayListAndArray { @Test public void Test() { //数组转集合 //Arrays.asList(数组元素1, 数组元素2, 数组元素3, 数组元素4, 数组元素5, 数组元素6); List<Integer原创 2020-11-05 21:14:34 · 223 阅读 · 1 评论 -
Collection接口中的常用方法
package com.zhiyou100.collection;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;//定义一个集合public class CollectionDemo { /* 增删改查 crud */ public static void main(String[] args) { //多态原创 2020-11-05 16:41:17 · 70 阅读 · 0 评论 -
内部类(重点:匿名内部类)
内部类:在描述事物时,若一个事物内部同时还包含其他事物时,就可以使用内部类这种结构。什么是内部类:将一个类A定义在另一个类B里面,里面的那个类A称为内部类,类B则称为外部类。成员内部类:定义在类中方法外的类格式:public class OuterClassName{ //... Class InnerClassName{ //... } //... }如汽车事物和引擎事物 引擎在汽车事物的内部原创 2020-11-03 17:32:17 · 83 阅读 · 0 评论 -
interface-----接口
类抽象类接口:是java语言类型中一种引用类型,就是方法的集合。如果说类的内部封装了成员变量、成员方法和构造方法,那么接口的内部主要封装的是方法包括抽象方法(JDK1.7及以前的)、默认方法和静态方法(JDK1.8),私有方法(JDK1.9),大部分使用抽象方法接口的的定义:使用interface关键字,编译生成class类文件。但是明确它不是由class声明,而是由interface关键字修饰的这样的一种类,属于另外一种引用数据类型。备注:引用数据类型:数组、类(String字符串)、接口原创 2020-11-03 16:28:35 · 86 阅读 · 1 评论 -
java面向对象三大特征之一-------------多态
package com.zhiyou100.ploy;//定义一个父类public abstract class Animal { // public abstract void eat();}//子类 猫class Cat extends Animal { //子类重写父类中的eat方法 @Override public void eat() { System.out.println("????吃????"); } //原创 2020-11-03 16:14:04 · 188 阅读 · 1 评论 -
java数据类型
变量:变量的数据类型 变量名 = 变量值;数据类型:基本型:数值型(整型)byte 字节 1个字节 1byte=8bit 2^7short 短整型 2个字节 2^16int 整型 4个字节 2^32long 长整型 8个字节 2^63整数类型取值范围从小到大的排序byte < short < int < long 布尔型 bool原创 2020-10-13 20:12:59 · 178 阅读 · 1 评论 -
java运算符
算术运算符:package com.zhiyou100;public class Demo01_Operator { public static void main(String[] args) { /* 运算符 程序中一种很特殊的符号 连接程序中需要参与运算的变量(前提条件是该变量有值) 算术运算符 + - * / % ++i i++ i自加1; --i i-- i自减1原创 2020-10-13 20:01:26 · 459 阅读 · 7 评论 -
配置环境变量
一、打开环境变量配置窗口 此电脑--->属性--->高级系统设置--->环境变量 可以看到有用户变量和系统变量二、配置系统变量 1.新建变量名JAVA_HOME,值为jdk的安装路径 2.新建变量名CLASSPATH,值为%JAVA_HOME%\lib(因为提前配置过JAVA_HOME,我们可以直接引用即可) 3.找到名为PATH的变量,点击编辑,新建一个值,值为%JAVA_HOME%\bin 4.最后点击ok即可三、测试jdk是否安装完成 打开dos窗口,在里面输入原创 2020-10-09 20:33:47 · 153 阅读 · 3 评论