202104-07 Java+MySQL 图书管理系统 一,功能管理员登录图书借阅信息管理图书信息管理管理员更改密码退出系统二,工具EclipseVersion:2018-09(4.9.0)MySQLWorkbench8.0CEmysql-connector-java-8.0.13.jar三、效果图:登录界面:主界面:借阅书籍管理:个人书库管理:更改密码:四、数据库设计1)图书表2)用户表两个数据表间没有关联:五、JAVA层次分析(1)逻辑图(2)包结构,采用MVC三层架构组织各个模块六、主要Java代码分析Dao类(以BookDao为例)package... 继续阅读 >
202104-07 Java 中的io模型详解 1.BIO我们先看一个Java例子:packagecn.bridgeli.demo; importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.ServerSocket;importjava.net.Socket; /** *@authorbridgeli */publicclassSocketBIO{ publicstaticvoidmain(String[]args)throwsException{ ... 继续阅读 >
202104-07 java中Supplier知识点总结 1、说明这个接口是提供者的意思,只有一个抽象的get,没有默认的方法和静态的方法,导入一个泛T,get方法,返回一个泛T。supplier也用于创建对象,但与传统的创建对象语法不同:new,Supplier不同于Function,它不接受参数,直接为我们生产指定的结果,有点像生产者模式。2、实例classPerson{StringfirstName;StringlastName;Person(){}Person(StringfirstName,StringlastName){this.firstName=firstName;thi... 继续阅读 >
202104-07 java实现图书管理系统 本文通过实例为大家分享了java实现图书管理系统的具体代码,供大家参考,具体内容如下一、背景介绍通过一段时间java编程的学习,需要一个比较综合的实例来进行编程的练习,是一个对前段时间所学内容进行总合提升的一个契机。选择了图书管理系统,会用到的javaSE知识有:变量、包、继承、类、接口、循环结构等。是一个很综合的典例。二、核心需求1.用户可以登录到系统上分为管理员、普通用户两种角色,这两种不同的角色根据自己的... 继续阅读 >
202104-07 初识Java环境变量配置及IDEA 一、JAVA简要概述先说一下java之父,詹姆斯·高斯林这是一个爱喝咖啡而又强大的男人。再来看一下JAVA有多火在TIOBE排行榜上JAVA基本都是稳居前三,可见java语言的火爆程度二、JDK环境变量配置右击此点电脑,点击属性再找到高级设置,环境变量,记住一定是系统环境变量!1.JAVA_HOME在系统变量中新建建JAVA_HOME变量不要有多余的空格和其他符号,变量值是你安装的JDK的路径复制过来就好了。JAVA_HOME:再新建一个CLASSPATH的环境变量... 继续阅读 >
202104-07 java操作mongodb之多表联查的实现($lookup) 最近在开发的过程中,一个列表的查询,涉及到了多表的关联查询,由于持久层使用的是mongodb,对这个非关系型数据使用的不是很多,所以在实现此功能的过程中出现了不少问题,现在此做记录,一为加深自己的理解,以后遇到此类问题可以快速的解决,二为遇到同样问题的小伙伴提供一点小小的帮助。全文分为两部分:使用robo3t编写多表关系的查询语句将编写的查询语句整合到java项目多表联查的查询语句:此处使用的为mongodb的robo3t... 继续阅读 >
202104-07 Java 利用DeferredResult实现http轮询实时返回数据接口 今天这篇文章呢,不难,其实是解答我一直以来心里的一个疑问。是这样的,之前看五八技术委员会主席沈剑老师的公众号架构师之路的一篇文章:http如何像tcp一样实时的收消息,里面其中的一个方案是用http短连接轮询的方式实现“伪长连接”。但是对于轮询,我们的第一反应肯定是有延时,但是标题不是说的是实时吗?当然我们可以把轮询的时长缩短一些,先不说这样大部分时间的轮询调用,可能都没消息返回,造成服务器资源浪费,轮... 继续阅读 >
202104-07 Java 利用DeferredResult实现http轮询实时返回数据接口 今天这篇文章呢,不难,其实是解答我一直以来心里的一个疑问。是这样的,之前看五八技术委员会主席沈剑老师的公众号架构师之路的一篇文章:http如何像tcp一样实时的收消息,里面其中的一个方案是用http短连接轮询的方式实现“伪长连接”。但是对于轮询,我们的第一反应肯定是有延时,但是标题不是说的是实时吗?当然我们可以把轮询的时长缩短一些,先不说这样大部分时间的轮询调用,可能都没消息返回,造成服务器资源浪费,轮... 继续阅读 >
202104-07 详解Java的引用类型及使用场景 每种编程语言都有自己操作内存中元素的方式,例如在C和C++里是通过指针,而在Java中则是通过“引用”。在JDK.1.2之后,Java对引用的概念进行了扩充,将引用分为了:强引用(StrongReference)、软引用(SoftReference)、弱引用(WeakReference)、虚引用(PhantomReference)4种,这4种引用的强度依次减弱,今天这篇文章就简单介绍一下这四种类型,并简单说一下他们的使用场景。1.强引用(StrongReference)强... 继续阅读 >
202104-07 Java 用两个线程交替打印数字和字母 前一段时间听马士兵老师讲课,讲到某公司的一个面试,两个线程,其中一个线程输出ABC,另一个线程输出123,如何控制两个线程交叉输出1A2B3C,由于本人多线程掌握的一直不是很好,所以听完这道题,个人感觉收获良多,这是一个学习笔记。这道题有多种解法,不过有些属于纯炫技,所以只记录常见的三种解法。首先看第一种1.park和unparkpackagecn.bridgeli.demo; importcom.google.common.collect.Lists; importjava.u... 继续阅读 >
202103-30 Java如何发起http请求的实现(GET/POST) 前言在未来做项目中,一些功能模块可能会采用不同的语言进行编写。这就需要http请求进行模块的调用。那么下面,我将以Java为例,详细说明如何发起http请求。一、GET与POSTGET和POST是HTTP的两个常用方法。GET指从指定的服务器中获取数据POST指提交数据给指定的服务器处理1.GET方法使用GET方法,需要传递的参数被附加在URL地址后面一起发送到服务器。例如:http://121.41.111.94/submit?name=zxy&age=21特点:GET请求能够被缓... 继续阅读 >
202103-30 Java使用SAX解析xml的示例 一、SAX解析xml简介SAX是SimpleAPIforXml的简写,主要功能是用于对xml文档进行解析。由于该方式采用的是事件驱动(callback回调机制)解析方式,所以有速度快、占内存少的优点,当然这些优点也仅限于xml的读取操作,SAX是无法对读取的XML元素进行修改的。如果要修改节点元素则需要使用DOC方式进行将xml文件读取,它会将xml读取成document树结构对象,这样可用对节点元素进行编辑操作;DOC方式的缺点也比较明显:占内存大、解析速... 继续阅读 >
202103-30 Java ArrayList使用总结 提起ArrayList,相信很多小伙伴都用过,而且还不少用。但在几年之前,我在一场面试中,面试官要求说出ArrayList的扩容机制。很显然,那个时候的我并没有关注这些,从而错过了一次机会。不过好在我还算比较喜欢搞事情的,所以今天这篇文章也算是填坑吧。看完这边文章你将了解到:ArrayList底层实现ArrayList为什么允许null值ArrayList为什么可重复ArrayList查询效率和插入效率对比类图下图是ArrayList的类图结构ArrayList... 继续阅读 >
202103-30 Java 为什么要避免使用finalizer和Cleaner java9之前finalizer,java9使用cleaner代替了finalizer。相比finalizer,cleaner(它存在于一个独立类Cleaner中,需要时候注入到对应类中即可)不会污染API而且cleaner有类库可以控制它的线程(它两都在后台线程中执行)。避免使用的原因:行为的不稳定性它两都不能保证及时的执行,从方法可达到(对象被置空了)开始到最终的执行,时间是任意长的。所以千万不要使用他们来更新重要的持久状态,如释放流资源、分布式锁等。System.g... 继续阅读 >
202103-30 JAVA多线程抢红包的实现示例 大体思路红包的分发见JAVA作业——红包分发。而抢红包要解决的是线程问题。其实比较简单,设定好人数,每个人一个线程,每个线程执行一遍,有红包就抢,没有红包就抢不到,所以run函数中只要判断现在还有没有红包就可以了。代码实现importjava.util.Random;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){intperson_num,red_pocket_num,sum_money;Scannerscanner=newSca... 继续阅读 >
202103-30 JAVA实现红包分发的示例代码 大体思路如果发总金额为mmm的nnn个红包,先用一个长度为nnn的临时数组aaa存放nnn个随机双精度小数,然后用sumsumsum表示数组aaa的和,每个红包的金额代码importjava.util.Arrays;importjava.util.Random;importjava.math.*;importjava.util.Scanner;publicclassMain{publicstaticlongnow_time;publicstaticlongseed;publicstaticint[]get_red_packets(intmoney,intnum){Ran... 继续阅读 >