Java
Java基础笔记
Yicsr
要做咸鱼里,最能扑腾的那一条。
展开
-
面向过程还是对象,由“如何把大象装进冰箱”来看
为了把大象装进冰箱,需要做三个动作(或者叫行为)。每个动作有一个执行者,它就是对象。依次完成这些动作,你就可以把大象装进去。为了把大象装进冰箱,需要3个过程。原创 2023-07-14 10:42:54 · 552 阅读 · 0 评论 -
pom.xml变黄了,没识别怎么回事?如何IDEA+Maven 打jar包?如何运行jar包
怎么办?右击点击 add as maven project然后右侧出来package,可进行打包原创 2021-08-03 15:59:56 · 389 阅读 · 0 评论 -
uuid生成器
uuid生成器1.UUID是什么UUID是通用唯一标识码的缩写,是一种软件建构的标准。目的:是让分布式系统中的所有元素,都有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其他人冲突的UUID。在这样的情况下,就不需要考虑数据库创建是的名称重复问题。2.UUID组成UUID是指在一台机器上生成的数字,它保证对在同一时空的所有机器都是唯一的。UUID由以下几部分的组合1)当前日期和事件,UUID的第一个部分与时间有关,如果你生成一个UUID之后,过几秒又生成原创 2021-08-03 10:27:36 · 1366 阅读 · 0 评论 -
Idea怎么导入数据库驱动、导入jar包
参考链接 Idea导入jar原创 2021-08-02 11:25:14 · 716 阅读 · 0 评论 -
java项目启动需要注意哪些
目录1.查看启动报错:2.常见的连接报错:端口占用 比如访问8080被占用3.其他连接错误,项目启动卡等因素.超昂新启动项目提示端口占用,是因为线程没有释放8080或者其他端口,百度kill线程.最直接的重启电脑。4.补充sql登录security加密后的密文1.查看启动报错:项目在首次启动时如果报错显示如下:红色部分连接拒绝,如果没有后边的绿色部分提示,则先检查是不是数据库连接问题要清楚常用数据库的端口号 比如mysql 3306查看绿色部分得知端口号的6379 判定是r原创 2021-07-30 14:53:36 · 215 阅读 · 0 评论 -
jdk更换修改idea配置
jdk更换修改idea配置步骤预览步骤1.打开idea设置2.取消默认javac编译3.检查项目jdk配置4.检查是否匹配并更换5.build项目预览原创 2021-07-30 10:15:11 · 566 阅读 · 0 评论 -
jdk上面没有明显标识版本,用idea如何查看jdk的版本
jdk上面没有明显标识版本,用idea如何查看jdk的版本步骤打开ideafile–new—project根据电脑上你想要的jdk环境,选择路径选择后路径后自动识别jdk的版本5.识别完成,但是只能识别版本,并不能保证该jdk是否能正常使用...原创 2021-07-29 17:19:46 · 2823 阅读 · 0 评论 -
Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 分析问题 热部署
前言:Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found1.针对于刚才出现的问题,首先要知道你进行了哪些操作 对于源文件改动了哪里2.因为你已经说在其他机子可以正常执行,所以我怀疑是个人动了文件问题。疑惑;为什么要加version?解决:将你所改动的位置删除,更新maven,idea页面的maven图标,进行刷新, 观察刷新依旧爆红,怀疑是缓存问题,执行 file restart and f原创 2021-07-29 15:51:08 · 519 阅读 · 0 评论 -
项目 servet 标红 MAVEN WEB-INF pom.xml
查找原因:是因为项目中没有引进serlvet-api.jar的包,根据提示需要加入lib中,发现项目中没有WEB-INF。总结科普web-infweb_inf是在webapp或者webroot下面的一个文件夹。存放 css,js,img,还有lib啥的,webapp、webroot是web项目启动必须有的,一个项目中你要启动web项目不关联其他例如vue页面,里面还有个web.xml,配置web服务需要的配置。后端项目启动不再需要配置tomcat,需要新的jar包不再找lib,你得会前后端交互,会.原创 2021-07-29 11:45:12 · 118 阅读 · 0 评论 -
Java 基础 关键字:this的使用
目录一、回顾封装与隐藏二、this的使用三、代码实现1四、代码实现2一、回顾封装与隐藏二、this的使用三、代码实现1public class PersonTest { public static void main(String[] args) { Person p1 = new Person(); p1.setAge(1); System.out.println(p1.getAge()); p1.eat(); System.out.printl原创 2021-06-16 18:16:00 · 97 阅读 · 0 评论 -
Java 基础面向对象 JavaBean UML类图
目录一、概念二、程序一、概念二、程序public class Customer { private String firstName; private String lastName; private Account account; public Customer(String f,String l){ this.firstName = f; this.lastName = l; } public Account getAccount() { return ac原创 2021-06-16 17:02:12 · 118 阅读 · 0 评论 -
Java 基础 类的成员 构造器(或构造方法)测试
目录一、概念二、代码实现一、概念二、代码实现public class PersonTest { public static void main(String[] args) { //创建类的对象:new + 构造器 Person p = new Person(); p.eat(); Person p1 = new Person("Tom"); System.out.println(p1.name); }}class Person{ //属原创 2021-06-16 15:31:35 · 156 阅读 · 0 评论 -
Java 面向对象的特征之一:封装与隐藏 封装性的表现 四种访问权限修饰符
使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。总结封装性:Java提供了4种权限修饰符来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性的大小。程序体现public class AnimalTest { public static void main(String[] args) { Animal a = new Animal(); a.name = "大黄";// a.age = 1;// a.legs = .原创 2021-06-15 19:53:43 · 1206 阅读 · 2 评论 -
Java 基础 面向对象 方法重载 参数传递机制 局部变量 权限修饰符 复习
一、什么是方法重载“两同一不同”:同一个类、相同方法名;参数列表不同。如何调用确定的方法:方法名→参数列表二、说明java方法中的参数传递机制的具体体现基本数据类型:数据值引用数据类型:地址值(含变量的数据类型)Person p1=new Person();User u1=p1;//编译错误 (逆向思维、反证法)u1.eat() u1.age三、成员变量和局部变量在声明的位置上、是否有默认初始值上、是否能有权限修饰符修饰上、内存分配的位置上有何不同?四、谈谈return关键字的使用1原创 2021-06-15 17:01:21 · 132 阅读 · 0 评论 -
Java SE基础 面试题 单例设计模式 常见的异常类型 Throws和Throw的区别 Final、Finally、finalize关键字的作用 Finally关键字的作用
目录六、 单例设计模式懒汉式线程安全懒汉式饿汉式七、常见的异常类型八、Throws和Throw的区别九、Final、Finally、finalize关键字的作用十、Finally关键字的作用Java SE基础1-5 链接六、 单例设计模式单例就是该类只能返回一个实例。单例所具备的特点:私有化的构造函数 。私有的静态的全局变量。共有的静态的方法。懒汉式线程安全懒汉式饿汉式七、常见的异常类型NullPointerException 空指针异常ClassCastExceptio原创 2021-06-11 15:24:17 · 99 阅读 · 1 评论 -
Java 面向对象 递归方法的使用 斐波那契数列 汉诺塔问题
目录概念例一例二例三例四 斐波那契数列例五 汉诺塔问题概念递归方法:一个方法体内调用它自身。方法地柜包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。递归一定要向已知方向递归,否则这些递归变成了无穷递归,类似于死循环。//计算1-100之间的左右自然数的和public int sum(int num){ if(num==1){ return 1; }else{ return num+sum(num-1); }}例原创 2021-06-11 14:23:40 · 1125 阅读 · 2 评论 -
Java 面向对象 参数传递的编码练习
(1)定义一个Circle类,包含一个double型的radius属性代表圆的半径,一个findArea()方法返回圆的面积。(2)定义一个类PassObject,在类中定义一个方法printAreas(),该方法的定义如下:public voidprintAreas(Circle c,int time) 在printAreas方法中打印输出1到time之间的每个整数半径值,以及对应的面积。例如,times为5,则输出1,2,3,4,5,以及对应的圆面积。(3)在main方法中调用printAreas.原创 2021-06-11 12:36:03 · 146 阅读 · 2 评论 -
Java 面向对象 探讨几道网红题目
目录第一题方法一方法二(琢磨)第二题(微软)方法一方法二第三题示例一示例二第一题方法一public class Test { public static void main(String[] args) { int a=10; int b=10; method(a,b);//需要在method方法被调用之后,仅打印出a=100,b=20,请写出method方法的代码 System.out.println("a="+a);原创 2021-06-10 17:50:10 · 152 阅读 · 0 评论 -
Java 面向对象 值传递机制的练习
方法的参数传递参考代码package project01;public class TransferTest3 { public static void main(String[] args) { TransferTest3 test = new TransferTest3(); test.first(); } public void first(){ int i = 5; Value v =new Value(原创 2021-06-10 16:15:39 · 60 阅读 · 0 评论 -
Java 面向对象 值传递机制 针对引用数据类型
Java 面向对象 值传递机制 针对引用数据类型如果变量是引用数据类型变量,此时赋值的是变量所保存的数据的地址值参考代码package project01;public class ValueTransferTest2 { public static void main(String[] args) { Data data = new Data(); data.m = 10; data.n = 20; System.原创 2021-06-10 15:16:53 · 64 阅读 · 0 评论 -
Java 面向对象 值传递机制 针对基本数据类型
目录一、概念二、参考代码一、概念方法的形参的传递机制:值传递1.形参:方法定义时,声明小括号内的参数实参:方法调用时,实际传递给形参的数据2.值传递机制如果参数是基本数据类型,此时实参赋给形参的是实参真实存储的数据值。二、参考代码public class ValueTransferTest1 { public static void main(String[] args) { int m = 10; int n = 20; Sys原创 2021-06-09 21:20:43 · 194 阅读 · 0 评论 -
Java 方法参数的值传递机制 理解变量的赋值
关于变量的赋值:如果变量是基本数据类型,此时赋值的是变量所保存的数据值。如果变量是引用数据类型,此时赋值的是变量所保存的数据的地址值。代码实现package project01;public class ValueTransferTest { public static void main(String[] args) { System.out.println("***********基本数据类型:****************"); int m.原创 2021-06-09 20:25:34 · 128 阅读 · 0 评论 -
Java 面向对象新特性 可变个数形参的方法
目录一、jdk 5.0新增的内容二、具体使用三、参考代码Java 面向对象新特性 可变个数形参的方法一、jdk 5.0新增的内容二、具体使用三、参考代码public class MethodArgsTest { public static void main(String[] args) { MethodArgsTest test = new MethodArgsTest(); test.show(12);// test.show("hello");// test.原创 2021-06-09 19:56:27 · 96 阅读 · 0 评论 -
Java 方法重载
定义在一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。举例Arrays类中重载的sort() / binarySearch()判断是否是重载跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!练习参考代码//方法的重载overloadpublic class OverLoadTest { public void getSum(int i,int j){ System.out.println(i+j); }原创 2021-06-09 17:46:49 · 70 阅读 · 0 评论 -
Java SE基础 面试题1-5 接口和抽象类的异同点 重载和重写 StringBuffer、StringBuilder、String区别 冒泡排序 选择排序
目录一、接口和抽象类的异同点二、重载(overload)和重写(overwrite)的区别三、StringBuffer、StringBuilder、String区别四、冒泡排序五、选择排序Java SE基础 面试题1-5一、接口和抽象类的异同点接口和抽象类的相同点:都不能创建对象都可以定义抽象方法,并且一定要在子类中重写接口和抽象类的不同点:关键字不同abstractinterface抽象方法中既可以有抽象的方法也可以有普通的方法接口中所有的方法都是抽象方法抽象类的方法可以任意权限原创 2021-06-09 16:07:12 · 105 阅读 · 0 评论 -
Java 自定义数组的一些工具类 最大值 总和 平均值 反转数组 排序 查找 遍历
自定义数组的一些工具类 // 求数组的最大值 public int getMax(int[] arr) { int maxValue = arr[0]; for (int i = 1; i < arr.length; i++) { if (maxValue < arr[i]) { maxValue = arr[i]; } } return maxValue; } // 求数组的最小值 public int getMin(int[] arr) {原创 2021-06-09 11:13:46 · 277 阅读 · 0 评论 -
Java 面向对象 匿名对象的使用
目录一、理解“万事万物皆对象”二、内存解析的说明三、匿名对象的使用参考程序一、理解“万事万物皆对象”二、内存解析的说明三、匿名对象的使用参考程序public class InstanceTest { public static void main(String[] args) { Phone p = new Phone();// p = null; System.out.println(p); p.sendEmail();原创 2021-06-09 10:15:35 · 50 阅读 · 0 评论 -
Java 对象数组 类的成员 方法 练习学生成绩
对象数组的题目package project01;public class StudentTest { public static void main(String[] args) {// Student s1 = new Student();// Student s1 = new Student();// Student s1 = new Student();// Student s1 = new Student();// Student s1 = new Stud原创 2021-06-08 16:28:19 · 260 阅读 · 0 评论 -
Java 类的设计练习
目录类的设计练习1类的设计练习2类的设计练习3类的设计练习1package project01;public class PersonTest { public static void main(String[] args) { //2. 创建Person类的对象 Person p1 = new Person(); //Scanner scanner = new Scanner(System.in); //调用对象的结构:属性原创 2021-06-08 14:54:34 · 212 阅读 · 0 评论 -
Java 面向对象 方法举例与声明的格式
类中方法的声明和使用1.举例public void eat(){}public void sleep(int hour){}void没有返回值public String getName(){}public String getNation(String nation){}返回字符串2.方法的声明3.说明4.return关键字的使用5.方法的使用中,可以调用当前类的属性或方法参考程序public class CustomerTest { public static voi原创 2021-06-07 20:51:55 · 306 阅读 · 3 评论 -
Java 数组复习题
或者原创 2021-06-07 20:12:23 · 64 阅读 · 0 评论 -
Java 面向对象 属性和局部变量的对比 相同点和不同点
目录类中属性的使用1.相同点2.不同点程序展示类中属性的使用属性(成员变量) vs 局部变量1.相同点1.1 定义变量的格式:数据类型 变量名 = 变量值1.2 先声明,后使用1.3 变量都有其对应的作用域2.不同点2.1 在类中声明的位置的不同属性:直接定义在类的一对{}内局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量2.2 关于权限修饰符的不同属性:可以在声明属性时,指明其权限,使用权限修饰符。常用的权限修饰符:private、public、原创 2021-06-07 19:56:24 · 83 阅读 · 2 评论 -
Java 面向对象 类和对象
目录一、 面向对象编程学习的主线二、面向对象和面向过程三、面向对象的两个要素四、设计类,其实就是设计类的成员五、类和对象的使用(面向对象思想落地的实现)六、如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非static的)七、对象的内存解析程序一、 面向对象编程学习的主线Java类及类的成员:属性、方法、构造器、代码块、内部类面向对象的三大特征:封装性、继承性、多态性其它关键字:this、super、static、final、abstract、interface、package、原创 2021-06-07 19:41:35 · 98 阅读 · 1 评论 -
Java 数组中的常见异常 角标越界 空指针异常
数组中常见异常数组角标越界的异常:ArrayIndexOutOfBoundExcetion空指针异常:NullPointerException原创 2021-06-07 14:46:48 · 712 阅读 · 1 评论 -
Java 排序算法性能对比 Array工具类的使用
排序算法性能对比冒泡排序n平方各种内部排序方法性能比较Array工具类的使用package project01;//java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法import java.util.Arrays;public class ArraysTest { public static void main(String[] args) { //1.boolean equals(int[] a,int[] b):判断两个数组是原创 2021-06-07 14:14:58 · 91 阅读 · 0 评论 -
Java 基本语法 算法的五大特征 冒泡排序 快速排序
目录排序的概念十大内部排序算法算法的五大特征冒泡排序练习排序的概念十大内部排序算法算法的五大特征冒泡排序练习public class ArrayExer2 { public static void main(String[] args) { int[] arr = new int[]{32,-6,20,0,956,-526,123}; //冒泡排序 for (int i=0;i<arr.length-1;i++){原创 2021-05-28 17:13:54 · 151 阅读 · 0 评论 -
Java 数组的复制、反转、查找(线性查找、二分法查找)
目录复制反转查找线性查找二分法查找复制package project01;public class ArrayExer2 { public static void main(String[] args) { int[] array1,array2; array1 = new int[]{2,3,5,7,11,13,17,19}; //其实只有一个数组, //显示array1的内容 for (int i =0; i< a原创 2021-05-28 11:31:55 · 131 阅读 · 0 评论 -
Java 数组常见算法 数值型数组中元素的最大值、最小值、平均值、总和
算法的考察:求数值型数组中元素的最大值、最小值、平均数、总和等定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值、最小值、和值、平均值,并输出出来。要求:所有随机数都是两位数【10,99】公式:(int)(Math.random()*(99-10+1)+10)public class AreaTest { public static void main(String[] args) { int[] arr = new int[10];原创 2021-05-28 10:26:22 · 857 阅读 · 0 评论 -
Java 数组中涉及的常见算法 杨辉三角
数组元素的赋值(杨辉三角、回形数等)求数组型数组中元素的最大值、最小值、平均值、总和等数组的复制、反转、查找(线性查找、二分法查找)数组元素的排序算法杨辉三角package project01;public class AreaTest { public static void main(String[] args) { //声明并初始化二维数组 int[][] yanghui = new int[10][]; //给数组的元素赋值.原创 2021-05-28 10:11:23 · 72 阅读 · 0 评论 -
Java 基础语法 数组元素
数组元素的默认初始值:数组元素是整型:0数组元素是浮点型:0.0数组元素是char型:0或‘\u0000’,而非‘0’数组元素是引用数据类型:false数组元素是引用数据类型:null数组内存的解析练习package project01;public class AreaTest { public static void main(String[] args) { int[] arr =new int[]{8,2,1,0,3}; int[] index =原创 2021-05-28 09:35:49 · 253 阅读 · 0 评论