- 博客(31)
- 收藏
- 关注
原创 JAVA-JDBC基础知识
前言今天来好好聊一下关于JDBC的知识点,而为什么是JDBC呢?因为在我的学习过程中,前期经过Java基础、数据库、java-web,其实感觉还是比较轻松的,但是再到后面MyBatis、Spring、SpringMVC、Springboot 框架的时候却发现学习效率明显变低了,理解好像也变模糊,明明学习框架可是脑子里面却拉不起来框架。回头复习发现如果在JDBC衔接MyBatis部分能够理解的深刻透彻的话,那么后期框架会越学越轻松。...
2021-12-20 00:40:15
1056
原创 【数据结构与算法】单向链表的超详细底层源码,手工实现
一、链表类简介:(王者英雄类) HeroNode类属性: 作为演示,属性、方法权限设置为public 编号:id; 英雄名:name; 昵称:otherName; 下一个结点:next; HeroNodeLinkedList类方法: ...
2021-11-20 14:51:58
233
原创 【java集合】手搓ArrayList方法底层源码,超详细
一、ArrayList类简介:1、类名:MyArrayList; 属性:容器(elementData), 元素个数(size), 默认初始长度(DEFAULT_LENGTH)2、需要实现的方法: 添加:add() 修改:set() 查询:get() 删除:remove() 元素个数:size() 是否为空...
2021-11-20 11:56:11
348
原创 【java高级】DOM解析XML技术-----【代码演示】
目录一、DOM解析XML技术二、解析XML技术的步骤一、DOM解析XML技术 基于XML文档树结构的解析 适用于多次访问的XML文档 特点:;比较消耗资源二、解析XML技术的步骤<?xml version="1.0" encoding="GB2312"?><PhoneInfo> <Brand name="华为"> <Type>Mate30</Type&g...
2021-11-19 19:21:13
281
原创 【java高级】基于Socket的TCP网络编程(代码演示案例)
目录一、基于Socket的TCP编程客户端Socket的工作过程包含以下四个基本的步骤:服务器程序的工作过程包含以下四个基本的步骤:二:代码案例:一、基于Socket的TCP编程客户端Socket的工作过程包含以下四个基本的步骤:创建 Socket:根据指定服务端的 IP 地址或端口号构造 Socket 类对象。若服务器端响应,则建立客户端到服务器的通信线路。若连接失败,会出现异常。 打开连接到 Socket 的输入/出流: 使用 getInputStream()方...
2021-11-19 00:19:44
441
原创 【java高级】多线程---Lock锁的使用
目录一:Lock锁三:synchronized与Lock的对比四:常见面试题:五:优先使用顺序一:Lock锁 从JDK5.0开始,java提供了更强大的线程同步机制--通过显式定义同步锁对象来实现同步,同步锁使用Lock对象充当。 ReentrantLock类实现了Lock,它拥有与synchronized相同的并发性和内存语义,在实现多线程安全的控制中,比较常用的是ReentrantLock,可以显式加锁、释放锁 二:Lock代码演示:class Windo.
2021-11-17 14:42:45
705
原创 【java高级】多线程--死锁问题
目录一:什么是死锁二:死锁代码演示一:什么是死锁不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁说明: 死锁出现后,不会出现异常,不会出现提示,只是素有的线程都处于阻塞状态,无法继续 我们使用同步时,要避免出现死锁 解决方法: 专门的算法、原则 尽量减少同步资源的定义 尽量避免同步嵌套 二:死锁代码演示class A { public synchronized void ...
2021-11-17 14:14:15
93
原创 【java高级】IO流--对象流(处理流之一)的使用
一:什么对象流对象流用于存储和读取基本数据类型数据和对象的处理流。它的强大之处在于可以把java中的对象写入数据源中,也能把对象从数据源中还原回来二:对象的序列化机制序列化:ObjectOutputStream类保存基本数据类型数据或对象的机制反序列化:ObjectInputStream类用于还原基本数据类型数据或对象的机制ObjectOutputStream和ObjectInputStream不能序列化static和transient修饰的成员变量1、对象序列化机制允许把内存中
2021-11-16 23:34:41
332
原创 【java高级】IO流知识点梳理-中
一:节点流和处理流节点流:直接从数据源或目的地读写数据字符流:不能直接从数据源或目的地读写数据,而是通过“连接”已存在的流(字节流、处理流)之上,通过对数据的处理为程序提供强大的读写功能二:InputStream&ReaderInputStream和Reader是所有输入流的基类InputStream的典型实现:FileInputStream方法:int read();从输入流中读取数据的下一个字节。返回 0到 255范围内的int字节值。如果因为已经到达流末尾...
2021-11-15 23:01:20
563
原创 【java高级】IO流知识点梳理-上
一:File类的使用1、File类的概述1、java.io.File类:文件和文件目录路径的抽象表达形式,与平台无关2、File类能够新建、删除、重命名文件和目录,但不能访问文件内容本身,如果需要访问,需要使用输入、输出流3、想要在java中表示一个真正存在的文件和目录,则必须有一个File对象2、File的构造器public File(pathname)以pathname为路径创建File对象,可以时绝对路径或相对路径 相对路径:是...
2021-11-15 15:17:42
377
原创 【Java集合】【List集合】第二章,Collection子接口之一:List接口
一、List接口概述List集合类中元素有序、可重复!集合中每个元素都有其对应的顺序索引。List接口的实现类常用的由:ArrayList、LinkedList、VectorArrayList:List接口的主要实现类,线程不安全,效率高,底层使用Object[] elementData存储LinkedList:对于频繁的插入和删除操作,使用此类的效率比ArrayList效率更高,底层使用的是双向链表存储Vector:List接口的古老实现类,线程安全,但是效率低,底层使...
2021-11-08 22:40:20
71
原创 【java集合】第一节:Collection接口方法、Iterator迭代器接口
一、集合框架的概述1、集合和数组的异同点集合、数组都是对多个数据进行存储操作的结构,简称:java容器数组在存储多个数据方面的特点:①:数组的长度随着初始化的设定而确定,无法更改②:数组存储的是数据是连续的、可重复的③:数组在初始化声明时,声明的是什么类型,后续就只能存储相对应的类型,无法更改④:数组中提供的方法和属性很少,不利于数组元素的添加、插入和删除操作,效率不高java集合分为两种体系Collection接口:单列数据,定义了存取一组数据的方法的集合 ...
2021-11-07 22:38:16
94
原创 【java基础】线程的生命周期、创建的两种方式及使用、线程的同步
目录一、概念1、程序、进程、线程二、线程的创建和使用1、通过继承Thread类的方式2、通过实现Runnable接口的方式:3、Thread类中的相关方法4、线程优先级三、线程的生命周期1、线程的几种状态四、线程的同步1、同步代码块2、同步方法一、概念1、程序、进程、线程程序:是为了完成某个任务,利用某种语言编写的一组指令的集合,及指一块静态的代码。进程:是程序的一次执行的过程,也可以是一个正在运行的程序,是一个动态的过程,有他自己...
2021-11-06 15:28:39
307
原创 【算法-环形队列】通过一维数组实现原理和代码思路(java语言实现)
注意点:队列的特点:先进先出,队列的输出、输入是通过数组的前后端进行操作,即队列的输入从数组的尾部进入,队列的输出从数组的头部输出代码实现需要声明的属性:front:头指针,本章操作环形队列的思路:front指向队列的头结点,也就是说arr[front]为队列的第一个元素rear:尾指针,本章操作环形队列的思路,rear指向队列尾结点的后一位,并将数组的最后一位空出,作为约定maxSize:数组的最大容量arr[]:声明一个数组用来存放队列代码实现:1、通过构造器初始化声
2021-11-02 14:39:33
136
原创 【java基础】equals和==的区别,以及equals的重写原则
==和equals的区别:1、==为操作符,适用于基本数据类型和引用数据类型如果比较的是基本数据类型,则比较的是两个变量保存的数据是否相等(不一定类型形同)用“==”比较时,符号两边的数据类型必须兼容(可自动转换的基本数据类型除外),否则编译报错如果比较的是引用数据类型,则比较的是两个对象的地址值是否相同,即两个引用是否指向同一个对象实体!用“==”2、而equals为方法,方法只能通过对象来调用,只适应于引用数据类型equals():为根父类Object中的方法,所有类都是继承
2021-10-31 13:10:49
274
原创 java三大特征:封装、继承、多态的梳理及理解(包含重载、this关键字、重写、super关键字的梳理)
1、java类以及类的成员面向对象的两个要素类:对一类事物的描述,是抽象的,概念上的定义对象:是实际存在的该类事物的每个个体,因而也成为实例(instance)面向对象程序设计的重点就是类的设计设计类,就是设计类的成员2、面向对象的三大特征3、其他关键字...
2021-10-30 16:55:04
189
原创 浅谈数据结构第一章,什么是数据结构
数据结构简单的理解就是关系!是指相互之间具有一种或多种特定关系的数据元素的结合按照视点的不同,我们把数据结构分为:逻辑结构、物理结构。逻辑结构:是指数据对象中,数组元素之间的相互关系集合结构:数据结构中的数据元素,除了属于同一集合外,他们之间是没有其他的关联关系的线性结构:是指线性结构中的数据元素他们之间的关系是一对一的树形结构:树形结构中的数据元素之间存在着一种“一对多”的数据关系图形结构:图形结构中的数据元素是多对多的关系逻辑结构是针对与具体问题的,通过对这个问题理解的基础上
2021-10-29 23:41:00
125
原创 浅谈类与类之间的关系
一:依赖关系 特性:临时、短暂、这种关系不需保存依赖关系是对象之间最弱的一种关系,是临时性的。代码中一般指由:局部变量、函数参数、返回值建立的对于其他对象的调用关系class A{public B method(C c,D d){E e = new E();...B b = new B();...return b;} }这个代码块中表示类A依赖了类B/C/D/E二、关联关系:对象之间的一种引用关系,比如客户类和订单类之间的关系。这种关系通常...
2021-10-29 22:53:35
272
原创 浅谈java的内存管理之回收机制
分配:是有JVM自动为其分配相应的内存空间释放:由JVM提供垃圾回收机制自动的释放内存空间垃圾回收机制(GC:Garbage Collection):将垃圾对象所占用的堆内存进行回收java的回收机制是JVM提供的能力,由单独的系统级垃圾回收线程在空闲的时间以不定时的方式动态回收。垃圾对象:不在被任何应用指向的对象在线程中是否可以通知垃圾回收机制过来回收垃圾?能,通过调用System.gc();或Runtime.getRuntime().gc();调用了Syste...
2021-10-28 17:15:50
150
原创 (排序算法)冒泡排序、选择排序、插入排序算法动图讲解配代码
1、冒泡排序相邻的两个元素进行相比较,如果前一个比后一个大,则进行交换,第一遍历到最后一个值的时候,即为最大,无需进行比较 int[] arry =new int[10]; //定义一个一维数组,并随机赋值0-100以内的整数 for(int i = 0;i<arry.length;i++){ arry[i]=(int)(Math.random()*100+1); } System.out.printl
2021-10-27 11:45:29
163
原创 Arrays工具类的使用以及数组常见的异常
Arrays.toString //输出数组信息int arr[] = new int[]{1,2,3,5,4};System.out.print(Arrays.toString(arr));Arrays.sort //数组排序int[] arr1 = new int[]{1,6,3,8,2,4}System.out.print(Arrays.sort(arr1));Arrays.fill //将指定的值填充的数组中int[] arr2 = new int[]{1,8,6,..
2021-10-23 17:34:58
178
原创 数组中涉及的常见的算法(数组中元素的最大值、最小值、总和、平均值;赋值、翻转、线性查找以及二分法查找)
1、数组元素的赋值(杨辉三角、回形数等)2、求数值型数组中元素的最大值、最小值、平均数、总和等3、数组的赋值、翻转、查找(线性查找、二分法查找 )
2021-10-23 16:05:07
564
原创 java回形数的思路与源代码(二维数组的赋值运用)
两种思路方式方法一:通过坐标的形式来实现二维数组的赋值以及遍历Scanner input = new Scanner(System.in);int len = input.nextInt();//初始化声明二维数组int[][] arry = new int[len][len];//通过坐标的方式给数组赋值来实现回形数int count=0;//初始化声明一个变量,后面用来给二维数组赋值int maxX=len-1;//最大的x轴坐标int maxY=len-1;//最大的y轴坐标
2021-10-22 14:00:02
216
原创 打印杨辉三角形(多维数组的运用)
思路:1、第一行有一个元素,第n行有n个元素;2、每一行的第一个元素和最后一个元素都是13、从第三行开始,每一行的非第一个元素和非最后一个元素满足:arry[i][j]=arry[i-1][j]+arry[i-1]+arry[j-1];代码如下://初始化声明一个二位数组,由于每一列的长度不一样,所以列不定义长度;int arry[][] = new int[10][];//接下来给列初始化声明并给二位数组赋值for(int i = 0; i < arry.length
2021-10-21 19:46:08
123
原创 创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同
思路一:通过boolean来进行判断是否有数组元素重复,有的话则重新赋值,后结束循环体的当次循环,继续随机赋值//方法一: int[] arry = new int[6];//初始化声明,长度为6的一维数组 for (int i = 0; i < arry.length; i++) {//再数组的长度内,对数组进行随机赋值 arry[i]=(int)(Math.random()*30+1);//给数组随机赋值【1-30】的整数值
2021-10-21 16:04:38
1375
原创 一维数组、二位数组的相关要素、特点、默认的初始化值
一:数组相关的要素:1、数组名;2、元素;3、索引;4、数组的长度二:数组的特点1、数组是有序排列的2、数组属于引用数据类型的变量。数组的元素既可以是基本数据类型,也可以是引用数据类型3、创建数组对象会在内存中开辟一整块连续的空间4、数组的长度一旦确定,则无法改变三:初始化数组://动态初始化int[] arry = new int[5];String[][] arry2 = new String[4][5];String[][] arry3 = new Str.
2021-10-21 15:33:12
231
原创 java求1000以内的所有质数(代码优化方案)
1、质数的优化,可以利用Math.sqrt()方法;2、利用 continue 标签;循环遇到合数直接跳出标签所指循环结构的当次循环,直接进行下一次循环;
2021-10-20 23:24:27
877
原创 Java:任意输入两个数值,判断其最大公约数和最小公倍数
思路:12和20的最大公约数是4;12和20的最小公倍数是60;判断输入的两个数的大小,利用for循环依次递减,判断其最大公约数判断输入的两个数的大小,利用for循环依次累加,判断其最小公倍数,互为质数的两个数最小公倍数为两者的乘积利用三目运算符进行for循环,求最大公约数利用三目运算符进行for循环,求最小公倍数 (互为质数的最小公倍数为两者的积)...
2021-10-20 08:38:45
532
原创 Java输入任意正整数,判断其以内所有的素数(1000以内的所有素数)
* 思路1:* 从约数的角度出发* 5的约数为1,5,和为6* 13的约数为1,13,和为14* 17的约数为1,17,和为18* 18的约数为1,2,3,6,9,18,,和为39* 所以如果约数的和==i+1;则为素数,否则为偶数** 思路2:* 判断约数个数是否大约2* 2的约数为1,2 约数个数为2* 11的约数为1,11 约数个数为2* 4的约数为1,2,4 约数个数为3* 24的约数个数为1,2,3,4,6,8,12,24 约数个数为8个** 思路3:...
2021-10-19 20:00:28
923
原创 Java 输入年份、月份,输出当月日历表
总体的逻辑思路:1、以1900年1月1号(星期一)为初始日期用来计算截止到输入年份的上一年最后一天的总天数;2、计算截止到输入月份的上一个月最后一天的总天数进行3、将获得的总天数%7得到剩余i天,则i+1天则为当月1号的星期数4、制作日历表注意点:1、判断年份是否为闰年,2月是否为闰月2、制作日历表时判断是否需要换行以下为运行代码:1、获取输入的年份,并求和截止到输入年份的上一年最后一天的总天数2、输入月份,并求和截止到输入月份上一个月最后一天的总天数,并算出输.
2021-10-19 19:48:15
5053
1
原创 java环境变量安装以及配置
本文章以jdk_8u_241版本为例通常默认安装至c盘 Progame Files->java路径下。测试是否安装成功:通过CMD中输入命令是否能得到jdk安装的版本号:cd "C:\Progame Files\java"cdcd jdk1.8.0_241\binjava -version安装成功后,开始配置环境变量步骤如下:1、通过“我的电脑”右击属性找到->高级系统设置2、点击“环境变量”开始配置系统变量3、在系统变量中新建“JAVA.
2021-10-18 16:52:04
696
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人