![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
将自己平时学的java等相关内容进行总结
Fmm-PMO
是非在己,毁誉由人,得失不论。
展开
-
数据库大作业——项目初始化及登录界面实现
对于一个框架学了很少一部分的菜鸡来说,做一个网页版的小项目demo可真是太难了,边参考边学边查(光跨域处理我就见过好多种,最后选了一个教程最详细,其实是因为有代码的做法,不过相比起来它也确实比其他从后端配置接口,又继承什么的要简单一些,它主要是在前端做的,采用的api),一个浏览器开着好几个页面,就这很多也只是学会了用法,但还不熟,至于原理更是懂得很少,底层的东西都太难了,能做到手撕源码的大佬,默默问一句“你们是人吗?”(狗头保命)。一、项目初始化关于这一部分,感慨颇深,由于之前踩过坑,本以为这次不会踩原创 2021-05-09 11:51:03 · 3884 阅读 · 19 评论 -
Vue+Element UI+Spring Boot小demo
前一阵跟着教程做了一个小项目的一部分因为觉得过了一遍基础感觉什么也没记住,想着跟着做一下会不会好一些,也正好看看现实中是如何用的,发现真难,这种东西真的是学了基础跟没学一样,中间找bug有时一找就是几个小时。。也主要是因为我是跳着学的,中间跳过了许多过渡的东西,因为现在许多的技术框架都是一点点建立产生的,就像前端的许多花样也还要建立在JavaScript上,c++许多语法也建立C语言的基础上。就像牛顿大师说的那样:“如果说我比别人看得更远些,那是因为我站在了巨人的肩上.”还有一个问题,不同的人有不同的书写原创 2021-03-21 01:38:41 · 377 阅读 · 2 评论 -
报错Incorrect string value: ‘\xE5\xAD\x99\xE4\xBD\xB3...‘ for column ‘username‘ at row 1
主要报错内容### SQL: insert into t_account(username,password,age) values(?,?,?)Incorrect string value: '\xE5\xAD\x99\xE4\xBD\xB3...' for column 'username' at row 1报错原因:建库建表时的字符集编码格式不符,sqlyog客户端,建表时若不选定则字段的默认编码为Latin1,可在mysql命令行通过(注意命令行语句末尾一定要加分号!!!)查看show原创 2021-03-09 09:06:15 · 2753 阅读 · 1 评论 -
MyBatis报错 ### Error building SqlSession.
报错内容com.fmm.test.TestException in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may exist in com/fmm/mapper/AccountMapper.xml### Cause: org.apache.ibatis.builder.BuilderException: Error pa原创 2021-03-08 23:33:15 · 812 阅读 · 0 评论 -
Circular view path [test]: would dispatch 和出现Cannot resolve MVC View XXX报错
前提已经使用模板引擎Thymeleaf出现Cannot resolve MVC View XXX,一般是在return处的"xxx"下有波浪线控制台打印Circular view path [test]: would dispatch back to the current handler URL [/hello] again.等内容错误原因,导入pom依赖时为<dependency> <groupId>org.thymeleaf</groupId> <原创 2021-03-14 09:57:39 · 419 阅读 · 0 评论 -
JavaJDK安装及环境变量的配置(详细步骤)
第一次当组长,第一次正式培训,希望可以帮到这些小学弟小学妹。。一、自行官网安装过程下载链接二、安装过程双击打开,点击下一步建议路径默认,防止第一次安装把自己绕晕,点击下一步等待,出现进度条我已经安装过,应该正常情况下默认,直接下一步即可又是进度条,继续等待吧。。看看自己有没有下载错,应该没人用32位吧。。然后关闭即可我的电脑->右键->属性先点击新建,我这里是9,大家用的8,不要在意这个,注意路径,后边有说怎么找,如果当初是默认路径的话,那原创 2020-11-25 09:33:50 · 641 阅读 · 0 评论 -
javaGUI实现计算器(四则取余等操作,可实现多项式运算)
写在前面之前在学院的一个组织里面给我们布置过GUI方面的一些作业,当然,这些都是过时的玩意,不过也算是巩固一下java基础,了解一下图形用户界面的简单构造,当然,还有为了提前应付java期末大作业,先不说是什么吧,总之就是使用GUI制作一个图形用户界面,比如简单的画图程序,或者简易的计算器,但不知道为啥,可能是疫情期间在家上网课的原因?不方便让同学对自己的作业进行讲解?没留大作业,嘿,这就奇了怪了,管他呢,就当练习了,总之没啥坏处,寒假就写了,自学了java之后,正式上课就再也没有听过老师的课,因为实在是原创 2020-09-01 23:21:30 · 2905 阅读 · 4 评论 -
使用超链接和后台Servlet实现文件上传和下载(附图和代码)
使用工具:IntelliJ IDEA 2020.1.1、Tomcat 9.0.331.文件上传文件上传涉及到前台页面的编写和后台服务器端代码的编写,前台发送文件,后台接收并保持文件,这才是一个完整的文件上传1.1前台页面在做文件上传时,会有一个上传文件的界面,首先需要一个表单,并且表单的请求方式为POST,其次form表单的enctype必须设为“multipart/form-data”,即enctype=“multipart/form-data”,意思是设置表单的类型为文件上传表单,默认情况下这个原创 2020-08-07 19:52:11 · 2151 阅读 · 1 评论 -
Java反射简单总结(附代码演示)
反射前言:有人说反射是框架的灵魂。。虽然我还没学过框架,也不知道咋用,不知道它博大精深的地方,但听这句话,就觉得反射很重要,倒现在我都不太会,东西看一遍也就是有个印象啥的,让我写我就忘了。。只能翻翻之前做的笔记啥的,拾起碎片似的记忆1.反射的基本概念及其相关理解反射:将类的各个组成部分封装成其他对象,这就是反射机制。理解:Java代码在计算机中经历的三个阶段①source源代码阶段(已经写好了.java源文件且经过编译生成了.class字节码文件),此时代码未进内存,还是在硬盘上②Class类对原创 2020-07-27 11:31:09 · 233 阅读 · 0 评论 -
Java注解简单总结(附代码演示)
注解前言:提到注解,脑海中应该立刻会想到另外一个词:注释。他俩“被看的对象有所区别”:注释是给人看的,而注解,是给计算机看的,当然也可以说它也是给人看的,前提是你知道这是干啥的情况下,别一个幼儿园的小朋友。。总之,它们两个都可以让你的程序更加易懂。Java语言中的类、方法、变量、参数和包等都可以被标注。1.相关概念注解(Annotation),也叫元数据。一种代码级别的明,它是JDK1.5后引入的一个特性,与类、接口、枚举在同一个层次,它可以放在包、类、字段、方法、局部变量、方法参数等的前面,用来对这原创 2020-07-27 09:47:59 · 242 阅读 · 0 评论 -
函数式编程——Lambda的延迟执行
有些场景的代码执行后,结果也不一定会被使用,从而造成性能浪费。而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能。性能浪费的日志案例并使用Lambda表达式进行优化解决public class Demo{ //定义一个日志级别,显示日志信息的方法 public static void showLog(int level,String mes){ //对日志等级进行判断 if(level==1){ System.out原创 2020-06-28 17:05:32 · 416 阅读 · 0 评论 -
函数式接口的基本概念和使用
概念函数式接口在java中是指:有且仅有一个抽象方法的接口。(当然它可以包含其他的方法,比如默认的,私有的,但是抽象的只能有一个)函数式接口,即适用于函数式编程场景的接口。而java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,java中的Lambda才能顺利地进行推导。题外话:“语法糖”是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层的实现原理仍然是迭代器,这便是“语法糖”。原创 2020-06-28 17:01:37 · 678 阅读 · 0 评论 -
TCP通信程序(客户端和服务端,附详细步骤)
说明:相关构造方法及使用步骤等在代码注释等内容中,有些地方需要捕获异常,正式写的时候一定要捕获或者抛出,否则编译异常!!!严格区分客户端和服务端两端通信时步骤:1.服务端程序,需要事先启动,等待客户端的连接。它不会主动的请求客户端2.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。这个连接种包含一个对象,这个对象是IO对象,可以通过这个对象进行通信,通信的数据不仅仅是字符,所以IO对象是字节流对象。在java中,提供了两个类用于实现TCP通信程序1.客户端:java.net原创 2020-06-26 22:35:58 · 3841 阅读 · 0 评论 -
网络编程及网络通讯协议相关介绍
一、网络通讯协议网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换TCP/IP协议:传输控制协议/因特网互联协议,是Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它的内部包含一系列的用于原创 2020-06-26 22:28:11 · 300 阅读 · 0 评论 -
java中的序列化、反序列化、序列化集合和transient--瞬态关键字
序列化和反序列化把对象以流的方式,写入到文件中保存,叫写对象,也叫对象的序列化。对象中包含的不仅仅是字符,使用字节流。Person p = new Person("小可爱",18);ObjectOutputStream:对象的序列化流//将对象写入到文件中,而硬盘中保存的都是字节,看不懂,所以要想看就要用流看,//即把文件中保存的对象,以流的方式读取出来,叫做读对象,也叫对象的反序列化,使用字节流ObjectInputStream:对象的反序列化流 writeObject(p)原创 2020-06-24 16:16:38 · 303 阅读 · 0 评论 -
并发线程与并行线程(形象有趣的理解)
进程、线程、并发线程、并行线程……这都啥玩意,听着就很懵逼。并发线程:指两个或多个事件在同一个时间段内发生。并行线程:指两个或多个事件在同一时刻发生(同时发生)。以吃馒头来理解,一个人吃两个馒头,正常人(个别人可能喜欢把两个馒头一起放嘴里或者把两个馒头压成一个。。。)如果想同时品尝味道,会选择咬一口第一个馒头,再咬一口第二个馒头,交替进行。在一段时间内便可以同时吃掉两个馒头,这就是并发线程。而两个人吃两个馒头,一人一个,两人都吃馒头,此时发生在不同人身上吃馒头的动作就是同时发生的,这就是并行线程。原创 2020-06-19 21:29:32 · 223 阅读 · 0 评论 -
Java中的Properties集合
java.util.Properties集合 extends Hashtable<k,v>implements Map<k,v>。它表示了一个持久的属性集,可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。它是唯一一个和IO流相结合的集合。①可以使用该集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储。本来集合中的数据是内存中的,程序结束就没了。②可以使用该集合中的方法load,把硬盘中保存的文件(键值对),读取到集合中使用③属性列表中每个键及原创 2020-06-05 23:16:00 · 311 阅读 · 0 评论 -
JDK9新特性——集合添加优化之of方法
List接口、Set接口、Map接口:里边增加了一个静态的方法of,可以给集合一次性添加多个元素。源码:static List of (E… elements)//不定长参数使用前提:当集合中存储的元素的个数已经确定了,不再改变的时候使用注意:1.of方法只适用于这三个接口,不适用于接口的实现类2.of方法的返回值是一个不能改变的集合,集合不能再使用add、put方法添加元素,会抛出异常3.Set接口和Map接口在调用of方法的时候,不能有重复的元素,否则会抛出异常DemoList lis原创 2020-06-05 23:12:58 · 305 阅读 · 1 评论 -
Java中的Lambda表达式
繁杂的Runnable接口实现多线程//使用匿名内部类实现多线程new Thread(new Runnable){ @Override public void run(){ System.out.println(Thread.currentThread().getName+"新线程创建了"); });.start;}//使用Lambda表达式new Thread(()->{ System.out.println(Thread.curren原创 2020-06-05 23:08:07 · 264 阅读 · 0 评论 -
JavaGUI使用密码框设置密码回显字符
基本都在注释中,使用的也都是简单的GUI组件package JFrameDemo;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JPasswordField;public class Demo ex原创 2020-05-15 16:22:19 · 1980 阅读 · 0 评论 -
Java文件操作-实现使用数据字节流将指定范围内的所有素数写入整数类型文件
1.首先数据字节流不能直接使用,需要依靠字节流2.使用了IO流,就要捕捉该被捕获的异常,否则编译报错3.该关闭的流一定要关闭(刚开始想在finally那设置关闭,但发现不好操作)4.存入的都是字节码文件,都是乱码。(字节码(Byte-code)是一种包含执行程序,由一序列 op 代码/数据对组成的二进制文件,是一种中间码。字节是电脑里的数据量单位。)5.刚开始没有使用对象操作,想把读取到的内容按行输出,存入数组中,但出了问题。。。。6.注意流的关闭顺序,先创建的后关闭,具体为啥,我不太清楚pac原创 2020-05-15 16:15:33 · 901 阅读 · 0 评论 -
java学习易错点整理(五)
这一节回顾一下获取随机数,日期类,包装类,==号的用法,话不多说,冲冲冲!!!获取随机数:①Math类(均为静态方法,也有静态常量)中的random()方法,即Math.random(),返回一个double值,且0<=double<1;因此若有Math.random()m,则可获取0<=doublem<m的随机数②使用Random类,Random r = new Random();,常用该类的nextInt(int n)方法,返回一个随机生成的int值,范围是0<=x&原创 2020-05-13 23:06:02 · 233 阅读 · 0 评论 -
java学习易错点整理(四)
接着上篇的异常来说哈对异常的处理1.最常见的一种就是使用try-catch,将可能出现异常的用try语句块包围起来,一个try可以有多个catch与之对应,但注意当try中出现异常时,它会在catch中找与该异常对应的捕获部分,找到后就停止,而不是一直找下去。使用try-catch的好处是你可以对异常进行处理,比如发生异常后有特殊提示,发生异常后也要把该释放的资源释放,该关闭的流关掉等。与try-catch常配套使用的还有finally代码块(异常的恢复机制),它位于所有的try-catch语句最后,原创 2020-05-12 22:12:50 · 263 阅读 · 0 评论 -
java学习易错点整理(三)
这一节复习一下异常吧(估计分两次说完),感觉学校考试又会出小的知识点(专坑人的那种,所以还是有必要记住的,虽然靠IDE足够了。。。)错误类(略写):java.lang.Error是错误类,当产生错误时,Java虚拟机将抛出Error类对象。主要的错误类有:NoClassDefFoundError类定义未找到错误。当没有找到.class文件或运行没有main()方法的.class类时抛出。OutOfMemoryError内存栈溢出错误。当用new申请分配内存且没有可用内存时抛出。StackOverf原创 2020-05-11 23:16:37 · 211 阅读 · 0 评论 -
java学习易错点整理(二)
关于访问权限和父子类之间的问题:1.一个源程序文件中可以声明多个类,但用public修饰的只能由一个(主类),且与文件名相同。2.权限修饰符的控制范围:public>protected>缺省(default(但default不写))>private,对应的范围为(依次减一,即越往后少一个):当前类,当前包,其他包中的子类,所有类(其他包中的非子类)。3.public等权限修饰符不能用于修饰方法体中的局部变量,因为局部变量的作用域仅限于当前方法,对其他类不可见,不存在其他类对它的访问。原创 2020-05-10 20:02:00 · 298 阅读 · 0 评论 -
java学习易错点整理(一)
这学期还没好好学习它,,它就离我而去了要,我,我感觉自己啥也没学会,学倒是学了不少东西,但忘了太多。而且学的很糙,认识的人有的说学糙点没啥,因为有的东西你可能一辈子都用不到,也有人认为多学点东西,多了解点东西是好的,当然还有人是什么都学,只是稍微地做了一下取舍。总之,人各有不同,还是要根据自己的实际情况来。java的这个几部分就把平时易错的、易混的整理一下吧。(简单的就略过了。。。)1.关于长度(数组和字符串)字符串长度对应的是成员方法,即需要字符串名.length();它的统计长度也包括空格数,nul原创 2020-05-09 21:39:39 · 391 阅读 · 0 评论 -
JavaGUI之使用表格实现显示输入字符串的每个字符的Unicode值
你只需要在文本框中输入想要查询的字符串(当然设计的程序肯定规定了你不能输入太多,尽管你对它们充满好奇),按下回车,你就会有意想不到的发现,出来了一张表格,而且它把你输入的字符串的各个字符的Unicode值都显示出来了!哇哦,妈妈再也不用担心我不会找Unicode值了。效果如下:代码:package Homework4;import java.awt.BorderLayout;impo...原创 2020-05-04 16:07:53 · 1202 阅读 · 0 评论 -
java8和java9新特性
java8版本和之前的相比,有了很大的不同,可以实现的操作也更多了,可以让程序猿自己设计和更好实现某个功能的东西也多了,今天呢,我就稍微说一下自己所知道的个别新特性,也算是巩固一下自己的知识吧。一、接口可以定义默认方法从java8开始,接口允许定义默认方法,可以解决接口的升级问题,比如有许多类实现了某个接口,为了更好地满足顾客的需求,这个接口需要增添新的功能,但是总不能重新打开每个类,在里边添...原创 2020-05-03 22:39:17 · 568 阅读 · 1 评论 -
java中常用的数学函数
均属于java.lang包下的Math类,是静态的,可直接通过Math.的方式进行访问,有常量,有方法方法:abs(): 绝对值函数,可用于将负数变为正数ceil(): 返回>=给定参数的最小正数,返回值类型为双精度浮点型floor(): 返回<=给定参数的最大正数,返回值类型为双精度浮点型rint(): 返回最接近参数的整数值(注意正数含....原创 2020-05-01 23:21:13 · 2620 阅读 · 0 评论 -
关于java中的哈希值
哈希值:(听这名字就感觉很高逼格的样子,其实我也只是知道一点点,四舍五入可以说就是不懂了,哈哈哈,谢谢你有勇气来听我讲。。)它是一个十进制的整数,由系统随机给出,就是对象的地址值,是一个逻辑的地址,是模拟出来的地址,不是数据实际存储的物理地址。在Object类中有一个方法,可以获取对象的哈希码。即hashCode()方法。它的源码非常简单:public native int hashCode(...原创 2020-04-30 23:17:15 · 980 阅读 · 2 评论 -
java继承关系中有关成员变量和成员方法的使用详解
今天正经一点,直接步入正题。。。在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种形式:①直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找(即子类向父类找,父类如果没有,再向爷爷辈找,依次类推,如果都没有,就去看Object,这一根类)②间接通过成员方法访问成员变量:该方法属于谁(就是这个方法是在哪里定义的,且哪个方法里规定了访问成员变量的方式,内部实现...原创 2020-04-30 23:05:58 · 671 阅读 · 0 评论 -
java基础-java中的变量知识讲解
1.变量:即可以改变其数值,使之可以的变化的量。2.java变量的要素包括:变量名、变量类型及作用域 变量的作用域:类变量、实例变量、局部变量 public class Variable{ static int a = 0; //类变量 String str = "hello world!"...原创 2020-01-16 14:18:14 · 221 阅读 · 0 评论 -
java基础-Scanner对象
Java提供了一个工具类,通过它我们可以获取用户的输入。java.util.Scanner,我们可以通过Scanner类来过去用户输入基本语法 Scanner s = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输...原创 2020-01-16 14:37:10 · 254 阅读 · 0 评论 -
java基础-switch多选择结构
多选择结构的实现方法之一就是switch case语句switch case语句判断一个变量与一系列值中某个值相等,每个值称为一个分支。*switch变量语句中的变量类型可以是: byte、short、int或者char。 从Java SE7开始 支持字符串String类型了("我的博客")("wodeboke")(这两种类型的字符串都是可以的...原创 2020-01-16 14:43:54 · 189 阅读 · 0 评论 -
java基础-类型变量详解
一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。 类变量:也叫静态变量,类变量也声明在类中,方法体之外,但必须声明为 sta...原创 2020-01-16 21:41:21 · 301 阅读 · 0 评论 -
java基础篇-数据类型之基本数据类型和引用数据类型
1.java语言是一种强类型语言,要求变量的使用要严格符合规定,所有的变量都必须先定义后才能使用。(除强类型语言外还有对应的弱类型语言)2.java的数据类型3.相关说明 1>当数据类型不一致,但大小一样是,==的比较结果仍为false 2>java是一种强类型语言,所有变量必须先声明后使用,而变量的命名有规则:只能以字母或下划线或美元符$开头,不能以...原创 2020-01-16 12:36:12 · 228 阅读 · 0 评论 -
Java01-java之父窗体与弹出对话框
代码用于实现在一个父对话框中通过一个按钮再次弹出一个副对话框用于一些其他操作,且只有弹出的对话框关闭了才能进行后续操作,否则无法点击。package FmmCalculator;//包名,可自行设置 import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt....原创 2020-01-13 22:45:31 · 313 阅读 · 0 评论