JAVA
文章平均质量分 65
会时
致力提供高质量文章,分享所学,共同成长!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringBoot搭建在线聊天室
Echat-SpringBoot一款轻量级的基于SpringBoot + WebSocket的在线聊天室项目,在MccreeFei的聊天室基础上,将其升级为SpringBoot版本,去掉了JSP文件,去掉了xml编写的sql语句,使用thymeleaf以及注解的形式,更便于维护和使用。项目展示使用下载并安装mysql 8.x,执行sql文件,在yml中配置数据库信息,启动项目即可使用。启动后访问本地8080端口即可,如果有SSL证书需求请自行配置。== 项目地址 ==Echat-Spri原创 2021-06-12 12:18:00 · 2332 阅读 · 0 评论 -
简单两步,用Java实现网络在线聊天室
Echat在线聊天室一款轻量级的基于SpringBoot + WebSocket的在线聊天室项目,在MccreeFei的聊天室基础上,将其升级为SpringBoot版本,去掉了JSP文件,去掉了xml编写的sql语句,使用thymeleaf以及注解的形式,更便于维护和使用。本文不涉及项目技术实现,感兴趣的话可以去查看源码。项目链接:https://github.com/Cool-CoCoder/Echat-springboot,编码不易,点个star再走吧~文章目录Echat在线聊天室一、项目展示原创 2021-01-12 11:57:47 · 1118 阅读 · 0 评论 -
带你逐行阅读经典Class字节码指令
首先阅读字节码指令前必须知道两个重要概念操作数栈:可理解为java虚拟机栈中的一个用于计算的临时数据存储区。局部变量表:(Local Variable Table)是一组变量值存储空间,用于存放方法参数和方法内部定义的局部变量。在IDEA中,可以查看局部变量表,下图中,main方法有两个变量,args和a。字节码指令,有一篇很好的博客:Java字节码指令收集大全案例1.定义一个局部变量bipush 10 // 将10入栈istore_1 // 将栈顶引用类型值保存到局部变量1中原创 2021-01-10 17:26:45 · 335 阅读 · 1 评论 -
带你阅读class文件,了解访问标志,类索引、父类索引与接口索引集合,字段表、方法表、属性表
读class文件是个漫长的过程,但阅读并不需要你手写二进制代码那么恐怖,只是重在理解,能够更好的理解虚拟机执行引擎,也很好的提升java基础。访问标志class文件常量池之后,继而是访问标志,即这个类的public、final、interface、abstract等访问信息。(下表不全)例如下图中,橙色两个字节就是访问标志,代表0x0021,表示ACC_PUBLIC,ACC_SUPER类索引与父类索引访问标志结束以后,类索引和父类索引分别有两个字节,一个指向当前类名,一个指向父类。绿色代.原创 2021-01-06 14:43:34 · 324 阅读 · 1 评论 -
带你阅读class文件,认识class文件中的常量池
Java语言中,常量池位于方法区,用于存放编译期生成的各种字面量和符号引用。可以比喻为class文件的资源仓库。编写一段java代码找到class文件,用sublime打开,我们看到了真实的字节码文件,字节码文件中每两位为一个字节(16进制)其中前8个字节是主副版本号,说明是class文件以及jdk版本。接着两个字节就代表常量池容量,转换后是40,表示有39个常量,索引为1~39打开IDEA使用jclasslib查看,发现无误如果要自行解析,需要对照数据类型表以及结构表。例如0a对应原创 2021-01-04 17:58:12 · 302 阅读 · 0 评论 -
this、static、final关键字与四大修饰符常见盲区有哪些?
看了一下其他的博客,关于这个知识点列举的很详细,但大部分看起来还都是初学者,只是把一些概念用法罗列上去。下面我也总结了一些常见知识点,以便大家写程序或者做面试题、考试题的时候少走一些弯路。this关键字不能在static方法中使用(static是跟随类一起加载的,而this指向实例化对象的某个变量或方法,前提是被实例化,所以this作用域与static不同,也就不能使用)final变量如果是基本类型则初始化后不可以改变,但如果是引用类型,引用类的值可以改变(不要以为final后就完全不可变了)原创 2020-11-19 17:59:35 · 246 阅读 · 0 评论 -
Java命令行运行带包名的class文件,解决找不到或无法加载主类问题
今天在做练习时,没有使用IDEA环境,通过原始命令运行class文件,发现了带包名文件执行的问题。会报错找不到或无法加载主类。用命令行执行不带包名的class文件,使用以下命令即可java XXX(class文件名)执行带包名的class文件需要注意一点,除了java指令要添加包名java com.alibaba.XXX(class文件名)解决这个错误,需要把当前路径转换为包之外的路径。这里有二级包名,使用两次 cd ..到包以外再执行,发现执行成功!(后面的数字是main需要的变量,.原创 2020-10-28 20:33:10 · 1400 阅读 · 1 评论 -
Java多线程进阶(十四)—— J.U.C之atomic框架:AtomicReference
传送门Java多线程进阶(十四)—— J.U.C之atomic框架:AtomicReference原创 2020-09-25 21:46:42 · 171 阅读 · 0 评论 -
Java8 forEach 使用
没有在优快云找到特别好的帖子,贴一个传送门Java8 forEach 使用原创 2020-09-17 20:31:59 · 188 阅读 · 0 评论 -
人脸打分! 如何用Java接入百度AI人脸识别并部署到公众号?
前言主要涉及的技术 SpringBoot框架、RestTemplate、fastjson、HttpHeaders、URIBuilder整体难度并不高,并且十分有趣一、接入百度AI链接 详细内容查看官方文档 https://cloud.baidu.com/product/face获取AccessToken接口public interface BaiDuAccessTokenService { /** * 获取权限token * @re原创 2020-09-15 22:01:18 · 530 阅读 · 0 评论 -
玩转JSONObject、JSONString、JSONArray、JavaBean的相互转换
导入依赖<!-- 导入fastjson处理json--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version> </dependency> fastjson 我们在使用该以来的时候,主要使用J原创 2020-09-13 09:50:20 · 804 阅读 · 0 评论 -
Java数据类型及变量的新理解
Java数据类型及变量的新理解在刚接触java时,对这些只有模糊的概念,虽然不影响使用,但一定会限制你的上限,当回过头学习JVM的时候,发现基础的重要性,这里把阅读的几篇优秀博客,和个人笔记整合在了一起,简短、易懂,希望阅读后能有所收获,欢迎补充。要做优秀的程序员,一定不要做API调用员。数据类型Java的数据类型分为两大类:-基本数据类型:包括 整数、浮点数、字符、布尔。-引用数据类型:包括 类、数组、接口。基本数据类型变量变量:常量是固定不变的数据,那么在程序中可以变化的量称为原创 2020-09-10 16:31:04 · 205 阅读 · 0 评论 -
thymeleaf传值的bug【th:replace】和【th:fragment】
这个bug调了一段时间,一直怀疑是自己写错了,后来才知道是th:replace在传值的时候,只在第一个传递,后面的th:replace不能传递值。代码大概是这样的<div th:replace="commons/bar :: topbar"></div><div th:include="commons/bar :: sidebar(active='emps')"></div>结果后端怎么都拿不到这个active,更别提还需要这个值进行判断,我就尝试了原创 2020-08-19 22:50:12 · 1595 阅读 · 2 评论 -
如何对IDEA2020进行全局编码以及properties编码设置?
编码问题事小,但有时候调整起来还是有点烦人。下面说一下IDEA全局编码设置以及properties文件的编码设置。setting中设置只改变当前的project,下一次创建仍需要手动修改,比较麻烦,相对于以往的IDEA版本,删除了Other Setting的选项,选择New Projects Settings中如图的选项即可。搜索file encoding来到对应界面,按如下设置即可。...原创 2020-08-18 16:16:11 · 2213 阅读 · 0 评论 -
MyBatis入门及深入完整版
文章目录Mybatis1.IDEA2020的问题2.xml配置CRUD(增删改查)IUserDao.xmlSqlMapConfig.xml3.xml配置3.1优化config配置3.2类型别名4. environment5.映射器6.xml映射文件6.1select元素的属性6.2问题7.日志工厂log4j8. 注解的CRUD8.1 字符串替换8.2 @param9.Lombok10.生命周期10.1 SqlSessionFactoryBuilder10.2 SqlSessionFactory10.3 Sq原创 2020-08-04 16:37:51 · 361 阅读 · 0 评论 -
Maven,配置文件\修改本地仓库位置\settings.xml的配置\第一次执行maven操作\Could not resolve dependencies
文章目录配置文件修改本地仓库位置pom配置settings.xml配置执行maven操作(有项目目录)“Failed to execute goal on project taotao_manage_web: Could not resolve dependencies ”配置文件下载maven后,解压到一个没用空格和中文的文件夹,这一点毋庸置疑,接着配置环境变量win + Q搜索环境变量配置一个M2_HOME,或者MAVEN_HOME,复制解压地址(不是bin目录)在用户变量或者系统变量中配置原创 2020-07-31 10:41:51 · 2625 阅读 · 0 评论 -
直接导入图片src,使用JSP编写简单的图片验证码
效果<%@ page import="java.awt.*" %><%@ page import="java.util.Random" %><%@ page import="java.awt.image.BufferedImage" %><%@ page import="javax.imageio.ImageIO" %><%@ page contentType="image/jpeg;charset=UTF-8" language="java原创 2020-07-29 10:39:09 · 426 阅读 · 1 评论 -
jquery ajax返回值result接收解析,以及javascript与jquery传递json格式/多个数据的方法,以及jquery,js post方法后,sendRedirect不跳转
我们将input传递给服务器,除了使用form表单的post,还可以使用js或jquery1.js传递json格式数据传递一个参数,我们用xhr.send("tel="+tel)这样的格式,但多个参数,就需要添加&,但需要注意,这个&要添加在下一个变量名的双引号中,而不是在外面。xmlHttpRequsts.open("post","/login",true); //设置post方式的头信息 xmlHttpRequsts.setRequ原创 2020-07-27 15:33:56 · 1816 阅读 · 0 评论 -
IDEA 上传更新的代码到码云上
这是一个传送门IDEA 上传更新的代码到码云上原创 2020-07-26 22:17:52 · 514 阅读 · 0 评论 -
【JDBC】关于apache的DbUtils的常用方法
DbUtils下载地址:apache-DbUtilsDbUtils库是一小类,旨在简化 JDBC的使用。JDBC资源清理代码是普通的,容易出错的工作,因此这些类从代码中抽象出了所有清理任务,从而使您首先有了真正想对JDBC进行的工作:查询和更新数据。使用DbUtils的一些优点是:没有资源泄漏的可能性。更加清晰的持久性代码。自动从ResultSets填充JavaBean属性。核心接口1.DbUtils举例提供一些close方法static void close(Connection原创 2020-07-26 14:49:17 · 200 阅读 · 0 评论 -
一步步教你从Mysql中读取图片并在网页显示
1.首先图片的src昨天研究了很久,看了很多博客,发现真的能实现的很少,我也不知道怎么那么多搬运工,看了实在浪费时间,除了有一篇提醒了我,图片的src填Servlet的地址,然后再Servlet中输出二进制数据,那样图片就能显示了。操作起来也十分方便。2.示例<img class="UserCover" src="/test">这个/test就是我们注解的地址@WebServlet("/test")我们详细看代码怎么写3.获取和数据库的连接这里不赘述,各自方法不同4. 构造原创 2020-07-21 09:47:13 · 6149 阅读 · 0 评论 -
如何通过表单提交图片并存入Mysql?
首先使用的是Controller ——》Service——》Repository这样一个框架,也可以简化,核心不复杂,然后我们是使用的IDEA进行开发1. 首先创建一个提交表单<form action="...." method="post" enctype="multipart/form-data"><input type="file" >注意这里method和enctype一定要按这样的格式写,之后设置input type为file2.介绍我们的核心组件在web-原创 2020-07-21 09:09:38 · 764 阅读 · 0 评论 -
简单,向MySql中存入图片
学习JavaWeb的时候,接触到了mysql,想到向表中存放图片,那今后照片管理就可以用sql语句来执行了,所以尝试了一下,还尝试了蛮久的。1.效果不是存了个字符串哈,可以看左边的数据类型。2. 获取blob数据我们创建一个方法使用FileInputStream读取图片,还有ByteArrayOutputStream将读取的数据写入byte[]数组,然后public static byte[] getImgStr(String path) throws IOException {原创 2020-07-10 09:52:15 · 12661 阅读 · 2 评论 -
Java线程同步安全问题的三种解决方案
1.synchronized同步代码块注意:在任何时候,最多允许一个线程拥有同步锁,谁拿到锁就进入代码块,其他的线程只能在外等着(BLOCKED)。synchronized(同步锁){需要同步操作的代码}1.1对象锁synchronized(this|object) {}1.2类锁synchronized(类.class) {}2.synchronized方法public synchronized void method(){可能会产生线程安全问题的代码}3.lock锁原创 2020-07-06 11:00:49 · 317 阅读 · 0 评论 -
[Java数据结构][10]Java二叉树
[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现文章目录[Java数据结构][10]二叉树前、中、后序遍历(递归)的Java代码实现1.前序遍历2.中序遍历3.后序遍历1.前序遍历先输出根节点,然后输出左节点,右节点,代码思路很简单 /** * 前序遍历方法 */ public void preOrder() { System.out.println(this);//先输出父节点 //向左子树递归原创 2020-07-05 19:14:20 · 258 阅读 · 0 评论 -
[Java数据结构][9]以雇员为例的哈希表HashTable代码展开
[Java数据结构][9]以雇员为例的哈希表HashTable代码展开散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。下图就是一个简易哈希表,原创 2020-07-04 21:54:27 · 199 阅读 · 0 评论 -
[Java数据结构][8]八皇后问题的判定条件分析
[Java数据结构][8]八皇后问题的判定条件分析由于在博客中已经可以看到很多八皇后问题相关的java代码,例如public class Queen8 { //定义一个max表示共有多少皇后 int max = 8; int[] array = new int[max]; static int count = 0; public static void main(String[] args) { Queen8 queen8 = new Quee原创 2020-06-29 16:49:15 · 812 阅读 · 1 评论 -
[Java数据结构][7]中缀表达式转后缀表达式的Java代码实现
[Java数据结构][7]中缀表达式转后缀表达式的Java代码实现中缀表达式是一个通用的算术或逻辑公式表示方法。也就是我们人平常使用的表示方式,如2+(2+6)*5-8逆波兰式(Reverse Polish notation,RPN,或逆波兰记法),也叫后缀表达式(将运算符写在操作数之后)例如 3 + ( 4 + 5)* 6 -83 4 5 + 6 * + 8 -中缀表达式转后缀表达式方法初始化两个栈:运算符栈s1 和储存中间结果的栈s2;从左至右扫描中缀表达式;遇到操作数时,将原创 2020-06-29 09:17:48 · 441 阅读 · 0 评论 -
递归中使用记忆化解法,LeetCode509. 斐波那契数
斐波那契数列斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)题目示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1转载 2020-06-27 18:49:54 · 410 阅读 · 0 评论 -
[Java数据结构][6]逆波兰表达式的Java代码实现
[Java数据结构][6]逆波兰表达式的Java代码实现逆波兰表达式又叫做后缀表达式。逆波兰表示法是波兰逻辑学家J・卢卡西维兹(J・ Lukasewicz)于1929年首先提出的一种表达式的表示方法 。后来,人们就把用这种表示法写出的表达式称作“逆波兰表达式”。逆波兰表达式把运算量写在前面,把算符写在后面。如(3+4)×5-6,写作逆波兰表达式就是3 4 + 5 × 6规则1.从左至右扫描,将3 和4 压入堆栈;2.遇到+运算符,因此弹出4 和3(4 为栈顶元素,3 为次顶元素),计算出3+4原创 2020-06-25 14:28:12 · 395 阅读 · 0 评论 -
[Java数据结构][5]Java通过站实现简易计算器
[Java数据结构][5]Java通过站实现简易计算器原理讲解Java栈的实现通过扫描表达式文本在我们之前栈的基础上,创建数栈和符号栈,通过上图的讲解,完成简易的计算器(10以内的数字,且目前仅限±*/)新增的方法1.返回栈顶元素,用于之后不取出的比较 /* 返回当前栈顶的值,但不是真的pop */ public int peek() { return stack[top]; }2. 返回运算符的优先级,数字越大,优先级越高/*原创 2020-06-24 21:54:03 · 421 阅读 · 0 评论 -
[Java数据结构][4]栈的Java代码实现
[Java数据结构][4]栈的Java代码实现栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。下面来看代码定义一个栈/*定义一个类表示栈 */class ArrayStack { private int maxSize; //栈的大小 private int[]原创 2020-06-20 23:03:24 · 332 阅读 · 0 评论 -
[Java数据结构][3]单链表以及双向链表Java代码实现
单链表Java代码实现,以水浒英雄链表为例单链表 :元素(数据元素的映象) + 指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。┌───┬───┐│data │next │└───┴───┘头结点不存放数据,但存放着下一个指针的地址,其他每个指针服从上面所示存储关系,最后一个指针指向null。定义一个英雄链表/** * 定义结点, 每个对象是一个结点 * */ class HeroNode { p原创 2020-06-18 20:03:16 · 361 阅读 · 0 评论 -
[Java数据结构][2]初级队列的、循环队列 Java代码实现
初级队列的Java代码实现队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(First in First Out)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端称为队头。就像下图这样,例如打水的时候,第一个来的先打先走,后面的同学依次排队。接着,我们来列举代码中的方法。构造队列 private int maxSize; //数组最大容量 private int front; //队列头 private in原创 2020-06-14 21:41:50 · 252 阅读 · 1 评论 -
[Java数据结构][1] 稀疏数组的Java代码实现案例
来自尚硅谷Java数据结构的课程笔记当遇见一个数组中有许多默认的重复数字时候,如棋盘,地图,可以用稀疏数组存储,节省存储空间掌握数组到稀疏数组掌握稀疏数组返回原数组案例可以看到以稀疏数组存储有效的节省了空间,接下来我们来实现代码。代码创建数组,初始化并输出 // 创建原始二维数组 int chessArr1[][] = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][3] = 2;原创 2020-06-13 20:09:46 · 217 阅读 · 0 评论 -
[ Java学习基础 ] Java的抽象类与接口
[ Java学习基础 ] Java的抽象类与接口一篇非常好的文章,把抽象类和接口的概念讲解的清晰透彻。来自腾讯云原创 2020-06-12 19:14:13 · 169 阅读 · 0 评论
分享