自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 设计模式—单例模式

设计模式,单例模式

2023-02-20 16:47:01 469

原创 Java并发知识点

java并发

2023-02-20 16:15:35 723

原创 线程池的常见知识点总结

线程相关知识点总结

2023-02-14 23:22:52 786

原创 HashMap的五种遍历方式

HashMap的五种遍历方式

2023-02-13 15:42:17 113

原创 Java-安装Maven

1. Maven的下载和安装老版本下载链接:老版本的maven如果想要下载最新版本,直接在官网下载就可以。但是,最新版本的maven可能有些不稳定。图示:下载到本地,解压缩。(不建议在c盘操作)2. 配置环境变量基本操作流程:进入我的电脑–>右击我的电脑,选择属性–>高级系统设置–>环境变量在系统变量处,选择新建环境变量,并添加如下内容:环境内为maven的安装路径:E:\tools\apache-maven-3.5.4-bin\apache-maven-3.5.4

2020-09-21 19:27:25 175 1

原创 Java线程-生产者和消费者问题

1.概述对于算法—消费者和生产者模式大概是我们最常见的问题了。再此文章中,笔者给出了三种解决方式。1.1 傻瓜式的银行案例BankCard类public class BankCard { // 余额 private double money; // 标记 // flase没有钱,不能取,但可以存; // true有钱,可以取,但不能存 private boolean flag; /** * 存钱 * @param m

2020-09-17 21:43:10 173

原创 Java-BigDecimal的算术运算

1. 概述对于BigDeciaml基本运算大致分为加,减,乘,除。其方法大概如下加:add(BigDecimal bigdecimal)减:subtract(BigDecimal bigdecimal)乘:multiply(BigDecimal bigdecimal)除:divide(BigDecimal bigdecimal)2.具体使用初始化:...

2020-09-17 12:49:12 410

原创 JavaWeb-实体类对象嵌套实体类对象的查询

1.1 实体类代码Cart类(购物车类)public class Cart { // 自增的购物车记录id private int cid; // 用户id private int uid; // 产品id private int pid; // 产品数量 private int cnum; // 产品总价 private BigDecimal ccount; // 999.99 99999(lon

2020-09-16 23:00:19 4798

原创 MySQL-表的连接

1.概述对于数据库的连接,笔者总结了五种。即:笛卡尔积,隐式链接,内连接,左外连接,右外连接。由于今日编写项目时,两表之间的连接有所生疏,故而总结一下此类语法。1.1 笛卡尔积简介:t,p分别是type和product表的表的简称或别名。/* 笛卡尔积 */SELECT p.*,t.* FROM product p, TYPE t;显示结果:此内容是臃肿的,没有进行过选择的。product表中的每个选项都与type表中的每个类型均匹配了一遍。1.2 隐形连接/*链接查询*//*隐形连接

2020-09-16 20:07:56 98

原创 Servlet-登录时的图形验证码

概述为了防止黑客或者软件的恶意输入登录,在登录时,我们必须添加类似于随机数或验证码之类的安全措施。1. 图形验证码(方法一)在使用servlet创建图形验证码时,必须提前创建lib资源目录,并且导入相关的Validate的jar包,添加到资源目录下。代码如下:@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

2020-09-15 21:24:08 150

原创 Java-前缀或随机验证码之随机数字

概述对于文件的上传和下载,往往不会用到文件的本来的名称,否则,会造成一些不安全的隐患。故此,需要在原本文件名之前加上一堆无规律可循的随机数字或符号。在生活中,也有另一种情况:在使用付费软件时,往往需要一大长串的随机的英文字符或数字。也是为了安全考虑,防止别人恶意注册!1. 使用UUID产生随机字符// 导入UUID的包import java.util.UUID;public static String getUUID(){ String uuid = UUID.randomUUID(

2020-09-15 21:09:40 177

原创 JDBC-查询数据(封装工具类)

使用封装工具类方式查询数据1. 封装注册,连接,关闭工具类public class JdbcUtils { // 设置属性 // 驱动 private static String driver; // 连接 private static String url; // mysql用户名 private static String user; // mysql密码 private static String pwd; // 1

2020-08-23 11:12:28 539

原创 JDBC-初级登陆密码验证

1. 输入数据该功能目的为实现用户输入的字符串与数据库中已有的字符串匹配,从而登陆数据库,简单实现一下。Scanner input = new Scanner(System.in);System.out.println("===============欢迎来到该系统==================");System.out.println("===============请输入用户名:==================");String username = input.nextLine()

2020-08-21 08:49:22 301

原创 JDBC-增删改查

添加元素// 添加int count1 = stat.executeUpdate("insert into student(name,password,gender,born,address) values ('tom','12345','男','1997-02-01','北京')");int count2 = stat.executeUpdate("insert into student(name,password,gender,born,address) values ('jack','12345

2020-08-20 22:15:47 109

原创 JDBC-创建数据库和表

// 1. 注册驱动Class.forName("com.mysql.jdbc.Driver");// 2. 获取连接// comepanydb此时只是作为一个已有的数据库防止语句出错String url = "jdbc:mysql://localhost:3306/comepanydb?useSSL=false&characterEncoding=utf8";Connection conn = DriverManager.getConnection(url, "root", "Root

2020-08-20 22:02:21 2013

原创 JDBC-初始化操作

// 1. 注册驱动,jdk1.8之后,自动注册Class.forName("com.mysql.jdbc.Driver"); // 获取类对象导致类加载,执行静态代码块,注册驱动//DriverManager.registerDriver(new com.mysql.jdbc.Driver());// 1. 驱动注册两次 // 2. 耦合性高,依赖驱动类// 2. 获取连接/** * url:Uniform Resources Location 统一资源定位符 网址,连接字符串 */Stri

2020-08-20 21:51:56 455

原创 JDBC-驱动的安装

1. 概念1.1 概述JDBC(Java Database Connectivity),即为Java连接数据库的规范。1.2 核心思想Java中定义了访问数据库的接口,可以为多种关系型数据库提供统一的访问方式。由数据库厂商提供驱动实现类(Driver数据库驱动)。1.3 MySQL数据库驱动的安装1.3.1mysql-connector-java-5.1.X 适用于5.X版本。mysql-connector-java-8.0.X 适用于8.X版本。5.X版本链接1.3.2再

2020-08-20 21:49:59 841

原创 Java—I/O框架

由于本周知识点难度较大,所以并没有一天一更。严谨治学嘛,总要细致一点。

2020-08-08 11:30:42 146

原创 Java初学—线程

花费了三天时间,终于把线程知识点总结完毕了!使用ThreadPoolExecutor类创建线程池七大参数核心线程数最大线程数非核心线程存活时间时间单位请求队列线程创建工厂拒绝策略四大拒绝策略AbortPolicy 抛弃任务,并抛出异常默认的拒绝策略这是线程池默认的拒绝策略,在任务不能再提交的时候,抛出异常,及时反馈程序运行状态。如果是比较关键的业务,推荐使用此拒绝策略,这样子在系统不能承载更大的并发量的时候,能够及时的通过异常发现。DiscardPolicy 放弃任务,

2020-08-06 21:22:18 91

原创 Java实现二叉排序树

二叉排序树二叉排序树(Binary Sort Tree), 又称二叉查找树(Binary Search Tree),亦称二叉搜索树。是数据结构中的一类。在一般情况下,查询效率比链表结构要高。特点:若左子树不空,则左子树上所有结点的值均小于它的根结点的值;若右子树不空,则右子树上所有结点的值均大于它的根结点的值;左、右子树也分别为二叉排序树;没有键值相等的结点。代码实现 /** * 二叉树的根节点 */ private Node root; /**

2020-08-03 23:44:52 126

原创 Java初学—集合(部分)

终于把知识点整理完了,松了一口气。HashMap源码分析分析:• HashMap刚创建时,table是null,为了节省空间,当添加第一个元素时,table容量调整为16。• 当元素个数大于阈值(16*0.75=12)时,会进行扩容,扩容后大小为原来的2倍。目的是减少调整元素的个数。• jdk1.8 当每个链表长度大于8,并且数组元素个数大于等于64时,会调整为红黑树,目的提高执行效率。• jdk1.8 当链表长度小于等于6时,调整成链表。• jdk1.8以前,链表是头插入,jdk1.8以后

2020-08-03 22:50:08 93

原创 Java—集合知识点的部分实现

绪论上一篇博客笔者介绍了部分的集合的知识点以及部分方法,那么,趁着周末的空闲,笔者对部分内容用代码实现一下,希望能给同样不知所措的你提供一些帮助。集合概述Collection集合体系包括了List和Set两大类;其中,List包括了ArrayList,Vector和LinkedList。Set包括了HashSet,LinkedHashSet和SortSet。SortedSet包括了TreeSet。下面讲述的内容主要为关于List的实现。1. Collection// 首先第一步,创建集合//

2020-08-01 14:58:50 92

原创 Java初学—集合

鉴于昨天晚上有事,没来得及整理笔记。故今天早上把昨天的知识点回顾一下,顺便做了下思维导图。冲!!!

2020-08-01 11:37:06 67

原创 Java初学—异常和部分常见类

部分常见类在上一篇文章中,本片包括部分常见类的知识的延展以及异常的学习过程中的笔记的总结!

2020-07-31 14:45:05 80

原创 Java初学—常见类

今早新鲜出炉的笔记,赶快更完早点回顾!!!

2020-07-30 08:48:10 90

原创 Java初学—三大修饰符

由于账号忘记登陆了,手机也无法使用,所以昨天一直没有更新,今天会补上。

2020-07-30 08:45:36 85

原创 Java初学—面向对象的三大特征

时间比较仓促,笔记有些杂乱。

2020-07-28 14:26:33 68

原创 Java学习—本周笔记总结

今天周末终于能好好休息一下了,趁着这个时间,就把本周学习过的知识点汇总一下!

2020-07-26 10:40:28 86

原创 Java初学—面向对象

昨晚上写完东西就太晚了,没有更新笔记。现在刚打完球回来,继续学习。又是元气满满的一天,冲就完了!

2020-07-25 08:59:40 96

原创 排序算法之冒泡排序

排序算法对于数组的排序,大致分为五种:冒泡排序,选择排序,插入排序,希尔排序和快速排序。本文讲解冒泡排序。冒泡排序鉴于对学术的严谨,对于此知识点,笔者特意在百度百科查找了关于冒泡排序的知识点。冒泡排序(Bubble Sort):一种计算机科学领域的较简单的排序算法。原理冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。...

2020-07-24 08:35:38 75

原创 Java初学—数组

今天又是难熬的一天呢!!!现在腰背酸疼,不过还好把知识点重新整理了一遍。后续继续更新关于排序算法的知识问题,今天简要叙述。

2020-07-23 21:50:03 75

原创 Java语言基础(二)

昨晚上没有把所有知识点再审查一边,刚刚又对照笔记重新添加了部分内容。新的一天,啥也不说了,冲冲冲!

2020-07-23 08:28:16 80

原创 Java语言基础(部分)

本文为新手小白作者在学习过程中的一些记录,望与君共勉!

2020-07-22 08:02:32 69

原创 数据库连接池和HTML

数据库连接池1. 为什么要使用数据库连接池线程池初始化一些线程,提供给程序使用节约了资源,关于线程的开闭资源,节约了内存空间例如初始化五个线程对象,这里有是个线程目标首先执行五个线程目标,其他线程目标等待五个线程目标执行完毕,会执行其他线程,不会关闭线程。2. 数据库连接池考虑的问题数据库连接池适用于管理数据库连接资源,属性和数据库连接对象。数据库连接的必要的资源:UR...

2020-03-26 17:55:35 137

原创 PreparedStatement使用

1. PreparedStatement插入数据SQL完成@Testpublic void testInsert() { User user = new User(10, "逗比匿名君", "123456"); Connection connection = null; PreparedStatement preparedStatement = null; try { //...

2020-03-25 22:49:05 431

原创 JDBC高级

1. Statement操作SQL语句// 查询指定的一个数据行,转换成对应的User对象 @Test public void testSelectOne() { ResultSet resultSet = null; Statement statement = null; Connection connection = null; User user1 = null; ...

2020-03-25 00:08:41 91

原创 Tcp服务器和客户端 学生管理系统概述

服务器功能分析1. 数据处理模块验证用户登录完成最基本的增删改查功能考虑锁操作2. 数据存储模块JSON文件格式存储和读取定时更新操作3. 数据传输模块发送JSON格式到客户端接收客户端发送请求和数据客户功能分析1. 登录模块登录请求模块验证用户名和密码接收客户端发送请求和数据2. 数据展示模块JSON格式数据展示解析展示代码实现过程概述1. S...

2020-03-17 22:46:41 220

原创 NIO实现网络实验室

NIO完成网络编程1. Selector选择器老大Selector选择器,网络编程使用NIO的大哥!!!服务器可以执行一个线程,运行Selector程序,进行监 听操作。新连接, 已经连接, 读取数据,写入数据Selector常用方法:public static Selector Open();得到一个选择器对象public int select(long timeout);监...

2020-03-16 21:09:41 128

原创 单例模式和NIO

单例模式1. 要求当前类有且只有一个对象,一旦当前类存在一个对象之后,无法在重新创建当前类的对象。就算是你要创建,代码返回的对象依然是上一次创建的对象。懒汉模式,饿汉模式!2. 单例模式推导【懒汉】代码示例:/** * SingleDog要求是一个单例类,整个代码运行周期内有且只有一个类对象 ** 不可取方式: * @全体成员 SingleDog类使用一个单例类,我创建过对象了...

2020-03-15 14:13:46 87

原创 注解

注解1. 注解概述1. 注解解释注释:解释代码,给程序员看注解:Java语言中的类,方法,变量,参数和包都可以被标注。和Javadoc不同,Java标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java虚拟机可以保留标注内容。当然它也支持自定义Java标注。JDK1.5之后的特征:用于说明程序,一般在框架中使用格式: @AnnotationName...

2020-03-10 21:10:41 89

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除