
Java基础
文章平均质量分 61
索半斤_suobanjin
郑州轻工业大学在读硕士研究生 | 啥也不会的小fw
展开
-
javafx实现简单的计时器
一、需求说明使用javafx实现一个简单的计时器,同时具有暂停功能。二、代码实现import javafx.application.Application;import javafx.application.Platform;import javafx.concurrent.Service;import javafx.concurrent.Task;import javafx.geometry.Insets;import javafx.geometry.Pos;import javafx.原创 2021-09-26 09:02:05 · 2799 阅读 · 3 评论 -
快速排序的优化 —— 三数取中
/*** 正常情况下,快排都是选取最左侧为基准数,但是在某些情况下,比如数组基本有 序的情况下,这种选取方式效率较低。为了解决这个问题,我们可以通过三数(左、右、中)选取中间的数来提高整体的效率。*/public class QuickSortDemo2 { public static void main(String[] args) { int[] array = {1,4,5,3,6,5,9,10,45,34,23,12,54,77,43,22,10,87,32,27,8原创 2021-08-31 18:54:34 · 846 阅读 · 0 评论 -
SpringMVC响应传值方式
传统Servlet响应方式在方法中注入HttpServletRequest、HttpServletResponse、HttpSession对象来共享数据和响应页面。@RequestMapping("/method1")public void method1(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException { req.setAttribute("username", "br原创 2021-07-12 16:24:28 · 125 阅读 · 0 评论 -
SpringMVC框架技术
SpringMVC概述基本介绍springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。SpringMVC的执行过程执行细节DispatcherServlet处理url请求,并通过处理器映射器(HandlerMapping)找到对应的Handler处理器映射器会返回一个执行链(就是一个封装好的对象HandlerExecutionChain),里面包含了Handler以及多个拦截器(HandlerI原创 2021-07-12 16:22:19 · 688 阅读 · 0 评论 -
Git从入门到入坟
一、git简介官网地址:https://git-scm.com/Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。二、版本控制是什么版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了已录下来。每一次原创 2021-07-12 16:07:52 · 161 阅读 · 1 评论 -
基于javafx和虹软ArcFace的高校新生人脸录入与识别系统
一、需求分析随着人脸识别技术的快速发展,各大高校也开始尝试在新生入校时就通过人脸识别相关技术对新生人脸信息进行采集并录入高校人脸信息库中。在今后的学习生活中,已经录入人脸信息的同学可以轻松的通过人脸识别设备进行人份认证。人脸识别在高校中的使用场景也十分广泛,例如高校宿舍进出管理,实验室进出管理,图书馆进出管理,图书借阅等。笔者所在学校在信息化建设过程中也充分的发挥了人脸识别的作用,在疫情期间结合人脸识别搭建了一套测温系统。本项目旨在通过javafx以及webcam和ArcFace等技术搭建一个简单的高原创 2021-07-11 19:25:07 · 1568 阅读 · 2 评论 -
设计模式之装饰器模式
一、继承的缺点最近星巴克要做一个系统,boss觉得很简单就让实习生小明来做这个系统。星巴克的咖啡种类繁多,用代码实现这些种类繁多的咖啡让小明很苦恼。小明根据自己的开发经验决定使用继承,于是他先设计了一个咖啡基类,如下所示:public interface 咖啡{ }随后就开始创建各种子类://加糖咖啡public class 加糖咖啡 implements 咖啡{ }//加盐咖啡public class 加盐咖啡 implements 咖啡{ }//猫屎原创 2021-04-09 19:55:56 · 121 阅读 · 0 评论 -
SpringBoot以及pymysql通过IPV6连接数据库
前言、配置mysql允许IPV6连接这里以CentOS为例,首先通过vi /etc/my.cnf编辑数据库配置文件。然后在[mysqld]下面加上如下内容:bind-address = ::然后重启mysql服务使配置文件生效:systemctl restart mysqld.service一、SpringBoot通过IPV6连接数据库在application.yml中配置datasource的url,格式如下:url: jdbc:mysql://address=(protocol=tcp)原创 2021-03-25 18:56:45 · 2750 阅读 · 1 评论 -
jackson导致的Socket is Closed异常
一、问题描述最近在重构大一时候写的一个项目,选用了jackson作为json序列化的工具。jackson提供了一个readValue方法,可以直接读取Socket获得的InputStream,但是当我使用了这个方法以后就会报Socket is Closed异常。return objectMapper.readValue(inputStream, new TypeReference<JsonResult<User>>(){});二、问题排查我首先对代码逻辑进行了审查,发现代码原创 2021-01-11 23:37:18 · 588 阅读 · 0 评论 -
基于javafx实现一个简单的图片查看器
功能分析1、查看图片2、图片旋转3、拖拽查看图片4、放大图片5、缩小图片代码实现package view;import javafx.application.Application;import javafx.application.Platform;import javafx.event.EventHandler;import javafx.geometry.Insets;import javafx.geometry.Pos;import javafx.scene.Scene;原创 2021-01-01 17:38:35 · 1622 阅读 · 1 评论 -
JavaWeb实现上传下载
上传基本实现思路表单设计enctype="multipart/form-data"Servlet设计 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置编码 request.setCharacterEncoding(StandardCharsets.UTF_8.toS原创 2020-12-29 16:11:35 · 157 阅读 · 0 评论 -
windows下mysql编码问题
解决思路今天在使用jdbc对mysql进行大数据操作时发现出现了乱码问题,经过排查发现是因为IDEA使用的编码和mysql不一致造成的。要解决这个问题需要通过修改mysql的配置文件my.ini(该文件就在mysql的安装目录下)。具体需要修改的地方:凡是出现gbk的地方都要修改为utf8。另外还需要对下面的地方进行修改:在[client]下添加default-character-set=utf8在[mysql]下添加default-character-set=utf8在[mysqld]原创 2020-12-29 16:09:12 · 146 阅读 · 0 评论 -
基于javafx的实训项目实战 —— 猿天气
前言这学期人机交互课程需要写一个项目,但是老师给的时间很短而且现在大三了也挺忙的,就写了个小项目应付作业。不得不感慨时光匆匆,大学好像要过完了。记得大一时候打字连盲打都不会,看着键盘打字都慢的一批,现在虽然也是一事无成,但是也能写点小项目了。大三下学期就该好好准备考研了,留个念吧。需求分析如今市面上有很多的天气预报软件。但是这些软件大部分都是针对移动端设计的。PC端虽然也有部分天气预报软件,但是跨平台性也比较差。本项目依赖javafx的良好跨平台性,实现了多端使用的目的,解决了市面上跨平台兼容性问题原创 2020-11-27 21:55:56 · 1451 阅读 · 9 评论 -
Java中的String类常考问题——创建几个String对象
前言最近参加了全国计算机能力挑战赛,其中有一道关于String类的选择题我很感兴趣:String a = "Hello"; //新建了一个对象String b = a; //没有创建对象,将a的引用赋值给了bSystem.out.println(a == b); //truea = a + b; //? 这个创没创建String对象呢?问上述共创建了几个String对象?字符串常量池字符串在实际项目中使用的还是很频繁的,如果我们在项目开发过程中需要频繁的创建相同的字符串就会导致效率低下原创 2020-12-02 21:44:48 · 675 阅读 · 1 评论 -
基于socket的即时通信系统的设计与实现
1 系统需求分析1.1 产品非功能需求1.1.1 用户需求系统的设计建立在用户的需求之上,通过对用户需求的分析,可以更好的实现系统,明确系统的设计方向。随着互联网的不断发展,人与人之间的交流也逐渐开始越来越依赖网络,在这种形势下,我们开发出了这款即时通信系统。本着用户至上的原则,我们对用户需求进行了分析调研。结果显示,用户除了对基本的通信功能的要求外,还希望能够拥有个性化的展示,同时希望能和好友进行更多的交互。基于用户的需求,我们将软件的功能大致划分为:通信,文件传送,界面展示,天气预报等。1.1原创 2020-11-30 20:19:19 · 12337 阅读 · 19 评论 -
ThreadLocal类
概述线程容器,给当前线程绑定一个 Object 内容,以后只要线程不变,可以随时取出。其底层实际是类似HashMap一样的东西,但是它的key是根据当前线程自己确定的,而值则需要我们自己进行设置。这样在一个线程内就可以任意使用。这样可以确保线程安全。示例:改变线程,无法取出内容。final ThreadLocal<String> threadLocal = new ThreadLocal<>();threadLocal.set("测试");new Thread(){ pu原创 2020-11-30 15:12:48 · 132 阅读 · 0 评论 -
Mybatis逆向工程
简介在使用mybatis的过程中,我们往往要建立多个pojo实体类,这个过程不仅繁琐而且也很耗费时间,因此mybatis官方为开发人员提供了mybatis-generator.jar,用来快速的创建实体类以及单表查询的mapper.xml。开发流程导入maven坐标<dependencies> <dependency> <groupId>junit</groupId> <artifactId>juni原创 2020-11-30 15:05:32 · 95 阅读 · 0 评论 -
2020年全国高校计算机能力挑战赛初赛java组
前言本人算法能力菜鸡水准,只会写写for循环。大佬手下留情。本次比赛编程题共有4题,但是第四题我没太看明白,而且这道题貌似我和其他人的不一样,具体也不知道咋回事。题解题目1统计从1到N的整数中,所有立方值的平方根为整数的数的格式输入说明:整数N(N<10000)输出说明:符合条件的数的个数,如4^3= 64 = 8^2输入样例:10输出样例:3(说明:样例中符合条件的3个数是1、4、9)import java.util.Scanner;public class Main {原创 2020-11-30 15:00:02 · 1701 阅读 · 9 评论 -
Java并发结构
一、线程线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。java.lang.Thread对象负责统计和控制这种行为。每个程序都至少拥有一个线程-即作为Java虚拟机(JVM)启动参数运行在主类main方法的线程。在Java虚拟机初始化过程中也可能启动其他的后台线程。这种线程的数目和种类因JVM的实现而异。然而所有用户级线程都是显式被构造并在主线程或者是其他用户线程中被启动。这里对Thread类中的主要方法和属性以转载 2020-11-29 10:10:36 · 115 阅读 · 0 评论 -
2020全国大学生计算机能力挑战赛模拟题(Java组)
一、题解1、题目:统计1到N(含)之间所有立方数的个数,并输出这个数目。提示:立方数的个数,如8是2的立方数,27是3的立方数,9不是立方数。输入说明:一个整数N(N<100000);输出说明:立方数的个数输入样例:200输出样例:5题解:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new S原创 2020-11-29 09:49:36 · 1627 阅读 · 0 评论 -
Java基础之多线程
一、线程对象的生命周期1. 概述private String content;@Testpublic void fun01(){ Thread t = new Thread(() ->{ content = "Hello World!"; }); t.start(); System.out.println(content.toUpperCase());}上面是一个简单的案例,我们可以通过这个案例来理解线程对象的生命周期。使用new关键原创 2020-11-28 13:17:16 · 199 阅读 · 0 评论 -
Java8新特性之Stream流入门
一、概述Stream流操作是Java为了简化数据操作推出的新特性。虽然被称为Stream流,但是它和IO流是完全不同的概念。Stream流更多的是为了增强集合操作,在数据量较大时,我们可以通过Stream流直接在内存中操作数据。通过使用流,我们可以说明想要完成什么任务,而不是说明如何去实现它。例如,我们想要统计某个整数集合中所有偶数的个数,传统方式会使用迭代的方式:List<Integer> integerList = Arrays.asList(1,2,3,4,5,6);int cou原创 2020-11-28 13:13:32 · 852 阅读 · 1 评论 -
Java8新特性之Lambda表达式
一、Lambda表达式概述Lambda表达式是Java8推出的新特性,是函数式编程的一种实现。通过配合函数式接口,可以使代码更加的简洁、明了,同时可以有效地减少代码量。Lambda通常用在需要使用匿名内部类的地方。Lambda表达式的主要目的就是突出对象的操作和行为,而简化其它不必要的步骤。它的一般形式如下:List<String> list = Arrays.asList("A", "B", "C");list.forEach(e -> System.out.println(e))原创 2020-11-28 10:49:17 · 109 阅读 · 0 评论 -
Java8新特性之方法引用
一、概述1. 引入方法引用是在Java8中引入的新特性,使用方法引用可以进一步的简化Lambda的一些基本操作。我们知道在JavaScript中方法也是对象,也就是说,我们可以直接对方法进行传递,方法可以作为某个函数的参数。Java的方法引用也是类似的思想,使用方法引用可以对方法的引用进行传递,然后由接受的方法底层进行执行。方法引用使用的一般方式如下:List<String> list = Arrays.asList("A","B","C");list.forEach(System.o原创 2020-11-28 10:45:34 · 333 阅读 · 0 评论 -
Java拾遗之final修饰符
一、final关键字用法二、修饰类当用final去修饰一个类的时候,表示这个类不能被继承。2.1 注意被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。final类中的成员方法都会被隐式的指定为final方法。2.2 说明在自己设计一个类的时候,要想好这个类将来是否会被继承,如果可以被继承,则该类不能使用fianl修饰,在这里呢,一般来说工具类我们往往都会设计成为一个fianl类。在JDK中,被设计为final类的有String、System原创 2020-11-28 10:42:35 · 186 阅读 · 1 评论 -
java拾遗之泛型
一、 泛型概述泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称原创 2020-11-28 10:39:05 · 132 阅读 · 0 评论 -
Java8新特性之接口
一、接口中的默认方法interface Test { //java8接口中允许有默认方法的存在,子类实现接口 //可以不用重写默认方法,如果有需要也可以进行重写 default void show() { System.out.println("hello"); }}class ClassTest01 implements Test { @Override public void show() { //调用接口中的默认方法原创 2020-11-28 10:36:00 · 143 阅读 · 0 评论