![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Young-_-D
YoungD
展开
-
做项目的大体步骤
前端:页面的样式,需要什么数据数据库:设计数据库前端可以在自动运行,独立化工程(脱离后端)后端:数据接口如何对接:json,对象all in one前后端联合调试原创 2020-11-15 19:02:09 · 226 阅读 · 0 评论 -
简单易懂的Mybatis环境的搭建
思路:搭建环境 --> 导入MyBatis --> 编写代码 --> 测试新建项目创建一个普通的maven项目导入maven依赖<!--导入依赖--><dependencies> <!--mysqlq驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-原创 2020-10-11 11:41:18 · 130 阅读 · 0 评论 -
手把手教你搭建Spring开发环境(IDEA)
首先打开IDEA,HAHAHA创建Maven项目,我一般习惯用使用maven-archetype-webapp骨架。(为啥使用骨架: maven骨架的使用能够帮我们快速的构建结构一致的项目,省时省力。)改下项目名称和GroupId在pom.xml中添加依赖(记得刷新maven) <dependencies><!-- 单元测试的依赖--> <dependency> <groupId>junit</grou原创 2020-09-18 10:43:34 · 727 阅读 · 0 评论 -
内存溢出 内存泄漏 StackOverflowError
StackOverflowError内存溢出内存泄漏1. StackOverflowError定义:函数调用栈帧太深了,注意代码中是否有了循环调用方法而无法退出的情况原因:StackOverflowError 是一个java中常出现的错误:在jvm运行时的数据区域中有一个java虚拟机栈,当执行java方法时会进行压栈弹栈的操作。在栈中会保存局部变量,操作数栈,方法出口等等。jvm规定了栈的最大深度,当执行时栈的深度大于了规定的深度,就会抛出StackOverflowError错误.原创 2020-05-25 23:02:00 · 329 阅读 · 0 评论 -
为什么报异常要打印的是堆栈信息
为了方便跟踪最先抛出异常的地方,又可以看到该程序的异常从哪些方法中层层抛出的。例如: main()方法中按顺序调用了a()方法和b()方法,其中b()方法中又调用了c()方法,c()方法中产生了一个异常,打印后的结果类似c():产生异常的行号b():c方法调用的行号main():b方法调用的行号有了这个线索查找异常产生的原因是不是很轻松呢...原创 2020-05-11 22:33:04 · 303 阅读 · 0 评论 -
Integer对象初始化过程[缓存机制]
首先我们先来看一个代码,关于Integer通过 ‘=’ 直接赋值:public class Main { public static void main(String[] args) { Integer f1 = 100; Integer f2 = 100; Integer f3 = 200; Integer f4 =...原创 2020-03-05 10:24:23 · 378 阅读 · 0 评论 -
【详细】二叉树的基本操作
基本操作前序遍历(递归)private void preOrder(TNode root){ if(root != null){ System.out.print(root.val+" "); preOrder(root.left); preOrder(root.right); } ...原创 2020-02-29 11:25:08 · 327 阅读 · 0 评论 -
反射机制
反射:框架设计的灵魂* 框架:半成品软件。可以在框架的基础上进行软件开发,简化编码* 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。* 获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文...转载 2020-02-06 15:34:12 · 152 阅读 · 0 评论 -
加载配置文件
//1.加载配置文件//1.1创建properties对象Properties pro = new Properties();//1.2加载配置文件,转为一个集合ClassLoader classLoader = ReflectTest.class.getClassLoader();//获取类加载器InputStream resourceAsStream = classLoader.g...原创 2020-01-30 12:50:56 · 242 阅读 · 0 评论 -
Java中long数据类型转换字节数组
long转换为字节数组//long转换为字节数组long n = 909090L;ByteArrayOutputStream baos = new ByteArrayOutputStream();DataOutputStream dos = new DataOutputStream(baos);dos.writeLong(n);byte[] buf = baos.toByteArra...原创 2020-01-23 21:54:45 · 2417 阅读 · 0 评论 -
Java手写死锁
一个对象只能锁一次public class TestDeadLock implements Runnable { public int flag = 1; static Object o1 = new Object(),o2 = new Object(); @Override public void run() { System.out.print...原创 2020-01-22 20:27:20 · 261 阅读 · 1 评论 -
划重点:自定义类型数组/集合利用sort排序
在集合框架与数组中sort()这个方法非常好用,对我之前的我来说也只是用,今天研究了一下,发现了好多好多东西,与您分享:Collections.sort()与Arrays.sort()的关系:Collections.sort()底层是由Arrays.sort()来实现的。有图有真相:关于sort()是如何排序的?不知道大家遇到是不是遇到这种问题才来查的,我们使用sort()方法进行排序对...原创 2019-12-26 21:30:03 · 360 阅读 · 0 评论 -
划重点:try/finally
不管try怎样,finally都会执行在try中return,在finally执行前会把结果保存起来,即使在finally中有修改也以try中保存的值为准,但如果是引用类型,修改的属性会以finally修改后的为准如果try/finally都有return,直接返回finally中的return...原创 2019-12-23 23:02:23 · 128 阅读 · 0 评论 -
Java实现约瑟夫环
问题描述:N个人围成一圈,从第一个人开始报数,报到m的人出圈,剩下的人继续从1开始报数,报到m的人出圈;如此往复,直到所有人出圈。(模拟此过程,输出出圈的人的序号)定义Person类(单链表节点)public class Person { public int id; public Person next; public Person(int id) { this.id = i...原创 2019-12-11 09:05:55 · 333 阅读 · 0 评论 -
JDBC连接池从0到1
数据库连接池:概念:是一个存放数据库连接的容器,当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户去访问数据库是,直接从容器里获取连接对象,[不能再去建立连接],用户访问完之后,会将连接对象归还给对象,[不用去关闭连接]优点:用户访问高效而且节约资源。标准接口:DataSource,javax.sql包下的方法:获取连接:getConnection()归还连接[不是关...原创 2019-12-06 00:35:42 · 265 阅读 · 0 评论 -
Java之泛型
概念:泛型是一种未知的数据类型,当我们不知道使用什么数据类型时,可以使用泛型;泛型也可以看成一个变量,用来接收数据类型创建集合对象,不使用泛型好处:集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据弊端:不安全,会引发异常创建集合对象,使用泛型好处:避免了类型转换的麻烦,把运行期异常,提升到编译期。弊端:只可以存储泛型类型的数据泛型的定义与...原创 2019-11-19 21:28:59 · 112 阅读 · 0 评论 -
Java之集合接口
先上图Collection集合接口集合与数组都是容器,区别是什么?数组长度固定,集合可变。数组中存储统一类型元素,可以存储基本数据类型值。集合只可以存储对象Collection接口:是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下:public boolean add(E e):...原创 2019-11-19 21:14:30 · 211 阅读 · 0 评论 -
Java之函数式接口
函数式接口概念:有且仅有一个抽象方法的接口;Java中的函数式编程体现就是Lambda,所以函数式接口就是可 以适用于Lambda使用的接口。常见的函数接口:Runnable,Callable,Compapator,FileFilter格式:确保接口有且仅有一个抽象方法:修饰符 interface 接口名称{ public abstract 返回值类型 方法名称(可选参数信息)}@...原创 2019-11-19 15:49:15 · 184 阅读 · 0 评论 -
Java之Comparable接口
Comparable接口:概念:此接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法。为什么要使用这个类?我们都知道Arrays包下有sort方法是进行排序的,可是底层是怎样实现的,其实他也是实现了Comparable接口。里面实现了compareTo方法,所以按照某种规则能够排序。那问题有来了如果数组类型是自...原创 2019-11-16 17:54:26 · 273 阅读 · 0 评论 -
Java之方法重写与方法重载
重载重写范围同一类继承方法名相同相同参数列表不同相同修饰符没关系权限大于父类抛出父类没有的异常可以不可以返回类型[不]同相同...原创 2019-11-16 17:09:35 · 151 阅读 · 0 评论 -
Java之接口与抽象类区别
撒大声地原创 2019-11-16 11:45:03 · 138 阅读 · 0 评论 -
Java之File类
路径绝对路径:所谓绝对路径,就是资源文件在硬盘上的真实路径或者部署到web服务器上之后引用资源的完整路径。– 如:D:/项目名/css/a.css相对路径:所谓相对路径,就是相对于当前文件,待引入的资源文件的位置。如“a.jsp” 文件里引用了“m.js”,若a.jsp和m.js在同一个目录,只要这两个文件的相对位置没有变,那么部署到web服务器就能正常显示。– ./ 当前目录 ...原创 2019-11-15 13:02:13 · 114 阅读 · 0 评论 -
Java之线程池与Lambda表达式
线程池:为什么要有线程?–如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。线程池就使得线程可以复用。线程池概念:–其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源。合理使用线程池能够带来的三个好处:降低资源消...原创 2019-11-13 09:02:08 · 261 阅读 · 0 评论 -
Java之线程
线程基础知识:并发:指两个或多个事件在同一个时间段内发生【交替执行】并行:指两个或多个事件在同一时刻发生(同时发生)【同时执行】进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序即是一个进程从创建、运行到消亡的过程。线程:线程是进程中的一个执行单元,负责当前进程中程...原创 2019-11-12 14:18:57 · 93 阅读 · 0 评论 -
Java之异常
异常继承体系:异常的根类是java.lang.Throwable,其下有两个子类:–java.lang.Error: 表示不可修复的恶性的错误,只能通过修改代码规避错误的产生,通常是系统级别的,所以很严重。–java.lang.Exception:可分为2种:编译时期异常:checked异常;表示可修复的良性(相对于错误)的异常,异常产生后程序员可以并且应该通过代码的方式纠正,使程序继...原创 2019-11-11 09:31:26 · 116 阅读 · 0 评论 -
Java类之System类,String类StringBuilder类
System类:java.lang.System类提供大量静态方法,可以获取于系统相关信息或系统级操作常用方法:– public static long currentTimeMills();返回以毫秒为单位的当前时间– public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int lengt...原创 2019-11-09 00:50:46 · 167 阅读 · 0 评论 -
Java之Object类与常用日期API
Object类:概念:–是所有类的根类;每个类都使用Object作为超类。方法:–public String toString(); //默认打印地址值, 建议所有子类覆盖此方法。–public boolean equals(Object obj); //判断两个对象地址值是否相等为什么String str = "ab";str会打印字符串;Student stu = new Stu...原创 2019-11-08 10:27:50 · 253 阅读 · 0 评论 -
Java语言之final关键字,权限修饰符
final关键字 :代表最终,不可改变的。可以用来修饰一个类:public final 类名{}; 修饰的类不能有子类也就是不可以被继承 注意:一个类如果是final,那么其中所有的成员方法都无法进行覆盖重写可以用来修饰一个方法修饰符 final 返回值类型 方法名称(参数列表){ //方法体} 修饰的方法不可以重写 注意:对于类,方法来说,abstract关键字和f...原创 2019-11-05 23:25:12 · 153 阅读 · 0 评论 -
Java之接口与多态
什么是接口,如何定义接口尼?在现实生活中接口就是公共的规范标准;在程序中就是多个类的公共规范。接口,是Java语言中一种引用类型,是方法的集合。使用interface关键定义接口,其中可以定义抽象方法(java7),默认方法(java8),静态方法(java8),私有方法(java9)等方法。-接口格式:public interface Compare{ ......原创 2019-11-05 00:09:28 · 119 阅读 · 0 评论 -
Java中数组长度丶字符串长度与集合类长度
数组长度:使用 .length ;int[] arr = new int[10];int len = arr.length;字符串长度:使用 .length();String str = "Hello world";int len = str.lenth();集合类长度:.size();ArrayList<E> list = new ArrayList<>...原创 2019-10-29 10:22:58 · 298 阅读 · 0 评论 -
JAVA利用方法交换两个数的值
我们知道如果要交换两个数的值很简单,如果利用方法交换尼?当我们利用普通类型去操作是结果肯定会大失所望,那么是为什么尼://无意义代码附上public static void swap(int num1,int num2) { int temp = num1; num1 = num2; num2 = temp;}可见他原来的值根本没有变。那么采用引用类型尼://先上代码cl...原创 2019-10-27 11:00:13 · 946 阅读 · 2 评论 -
Java之main方法
在大多数语言中认识的第一个方法(函数)肯定是main方法,相信大家也知道main方法是作为程序的入口。 先让我们认识一下Java语言中main方法的写法:public static void main(String[] args) { 语句;}那...原创 2019-10-23 16:50:07 · 160 阅读 · 0 评论 -
Java之可变参编程
首先来谈一下方法重载:所谓方法重载就是在同一个类里,定义同一方法名,但是形式参数不同,以至于达到不同的功能。通常我们常有的例子就是求几个数的和,那么到底是几个数尼:public static int sum(int a,int b){ //求两个数 return a+b;}public static int sum(int a,int b,int c) { //求三个数 re...原创 2019-10-22 22:30:29 · 112 阅读 · 0 评论 -
JAVA之数组
在JAVA中,可以使用变量定义数组。一维数组:格式一:数据类型[] 数组名 = new 数据类型[5];格式二:数据类型[] 数组名 = new 数据类型[]{1,1,2,3,4};格式三:数据类型[] 数组名 = {1,1,2,3,4};for-each循环:特点:用于数组,但不可以通过下标索引 for(表达式1:表达式2){ }Java内存分布:栈:存放方法定义...原创 2019-10-19 16:34:07 · 124 阅读 · 0 评论