自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jsp 实现登录和查询所有的用户信息

文章目录数据库首页工具类数据库连接用户登录依赖jsp页面数据库create table users( id bigint primary key auto_increment, username varchar(20) , password varchar(20), sex boolean default 1, age bigint, birth date, salary double(10,2))engine=innodb default chars

2021-04-13 00:46:02 6

原创 使用jsp简单实现用户登录

首页<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><!DOCTYPE html><html><head> <title>学生管理系统——首页</title></head><body></h1>学生管理系统<h1/><!--提供首页跳转的超链,因为需要在一个类内进行

2021-04-11 23:27:05 3

原创 java Web servlet 基础概念

文章目录1、Hello ServletServlet的特点2、Servlet实例对象的生命周期1、Hello ServletServlet是一种用于扩展服务器功能的服务器端组件技术,用于实现动态网页编程因为Servlet接口不在JavaSE中,所以需要引入servlet-api依赖 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api&

2021-04-11 23:23:08 6

原创 idea 启动tomcat 产生org.apache.tomcat.util.modeler.BaseModelMBean.invoke 调用方法[manageApp]时发生异常,解决办法

07-Apr-2021 19:33:53.554 严重 [RMI TCP Connection(5)-127.0.0.1] org.apache.tomcat.util.modeler.BaseModelMBean.invoke 调用方法[manageApp]时发生异常 java.lang.IllegalStateException: 启动子级时出错 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.jav

2021-04-07 19:41:21 5

原创 MySQL 数据库索引

文章目录五种索引索引底层结构为:平衡二叉树B树B+ 树MySQL官方对索引的定义为:索引Index是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。数据库查询是数据库的最主要功能之一,希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。MySQL目前主要有普通索引、唯一索引、主键索引、组合索引和全文索引共5种索引类型。五种索引普通索引和唯一索引、主键索引普通索引和唯一索引是根据索引的功能来划分。普通索引是MySQL中的基本索引类型,允许

2021-04-07 19:32:06 19

原创 Hashtable源代码分析

文章目录Hashtable构造器Entry添加put扩容Hashtable出现于jdk1.0,实现了map接口,底层通过拉链法实现散列表,即数组加链表结构,数组上的每一元素都为一条链表,(注意Hashtable中并没有树结构),是一个线程安全的类,HashTable的操作几乎和HashMap一致,主要的区别在于HashTable为了实现多线程安全,在几乎所有的方法上都加上了synchronized锁,而加锁的结果就是HashTable操作的效率十分低下,所以不建议使用HashTable,Oracle官方

2021-04-03 16:17:36 5

原创 LinkedList 源代码分析

文章目录LinkedList类定义变量Node构造器add常用方法LinkedList类定义出现于JDK1.2版本,为list的实现类,是有序可重复的集合,为双向链表实现,查询慢,增删快/** * @since 1.2 * @param <E> the type of elements held in this collection */public class LinkedList<E> extends AbstractSequential List<E&

2021-04-02 09:35:52 5

原创 layui组件实例

文章目录组件实例1、弹出层1、使用方式2、基础参数3、示例2、日期与时间选择3、分页组件实例1、弹出层1、使用方式模块加载名称:layer,独立版本:https://layer.layui.com/第一种作为独立组件使用,在https://layer.layui.com/下载组件包,在需要使用的页面加载1.8以上的jquery的js和layer.js文件独立使用需要用到Bootstrap的jquery的js文件<link rel="stylesheet" type="text/css"

2021-03-30 00:04:11 11

原创 layui基本元素2

文章目录1、导航水平导航垂直/侧边导航面包屑2、选项卡3、表格4、表单1、输入框2、下拉选择框3、复选框4、开关5、单选框6、文本域7、组装行内表单8、忽略美化渲染9、方框表格1、导航依赖加载模块:element水平导航加载模块 <!--单个模块使用字符串,多个模块使用数组--> <script type="text/javascript"> layui.use("element", function () { var

2021-03-28 23:49:36 3

原创 layui

layui(谐音:类ui)是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用,属于轻量级框架,适用于开发后端模式,在服务器端页面上有良好的效果,是提供给后端开发人员的ui框架。1、 下载及其目录官网:https://www.layui.com/在我们的下载到 layui 的最新版,它经过了自动化构建,更适合用于生产环境。目录结构如下下载完成后解压,创建一个新项目,将解压后的文件直接拷贝过来,其中除了layui以外都可以删除

2021-03-28 11:47:47 5

原创 java ArrayList源代码详解

类定义//出现于jdk1.2,继承于AbstractList,实现了list接口,可克隆,可序列化,支持快速随机访问public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{}变量 //默认初始容积 private static final int DEFAULT_C

2021-03-26 21:16:13 5

原创 MySQL索引

文章目录一、MySQL数据引擎InnoDB存储引擎MyISAM存储引擎二、MySQL索引索引的优缺点三、创建及删除索引创建索引删除索引一、MySQL数据引擎数据库引擎是数据库用于存储、处理和保护数据的核心服务,不同的数据库引擎有其各自的特点,如存储机制、索引技巧、主键的处理、锁的粒度等特点便随着引擎的不同而变化。因此,针对自己项目特点选择合适的数据库引擎可以改善服务器端存储性能。MySQL最常用数据引擎有:innodb 和MyISAMSHOW ENGINES命令来查看MySQL使用的引擎在M.

2021-03-25 00:15:32 2

原创 MySQL基础语法

文章目录一、MySQL运算符1、算术运算符2、比较运算符3、逻辑运算符4、其他运算符5、集合统计函数6、分组二、外键约束1:1的表示方法:1对多,多对1一、MySQL运算符1、算术运算符只能针对数值类型进行计算,如果是非数值类型则自动转换,如果转换失败则0进行处理2、比较运算符3、逻辑运算符4、其他运算符like配合%和_进行模糊查询Inin (a,b,c)不在某范围内 not in (…)Betweenbetween a and b不在某个范围内

2021-03-22 23:27:51 5

原创 JDBC编程基础

文章目录前言1、JDBC概述2、使用JDBC访问MySQL1、加载JDBC驱动程序2、创建数据库连接3、执行SQL语句,并接收处理SQL返回结果4、关闭创建的各个对象3、PreparedStatement4、Connection接口5、Statement接口三种Statement类Statement和PreparedStatement的区别前言JDBC英文名为:Java Data Base Connectivity(Java数据库连接),官方解释它是Java编程语言和广泛的数据库之间独立于数据库的连接标

2021-03-14 01:11:32 30

原创 数据库的基本概念及MYSQL基本操作

文章目录一、数据库数据库的定义DBMS数据模型RDBMS的特点常见的数据库二、SQLSQL的特点NoSQLSQL和NoSQL的比较三、Mysql数据库Mysql数据库应用MySQL 8的新特性常用mysql服务命令一、数据库数据库的定义数据库是指长期存储在计算机内有组织可共享的数据和数据之间关系的集合。数据库中的数据按照一定的数据模型组织、描述和存贮,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定范围内可以被多个用户所共享。数值和数据。数据=元数据+数值关系型数据库是建立在关系数据模型基

2021-03-10 23:41:25 10

原创 java网络编程

文章目录一、TCP/IP协议分层模型OSI协议模型TCP协议二、URL访问网上资源实现一个QQ聊天室一、TCP/IP协议分层模型TCP/IP协议的分层有2个模型,分别是TCP/IP参考模型与OSI参考模型。在TCP/IP参考模型中,是分为数据链路层、互联网IP层、传输层、应用层共4层在OSI参考模型中分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层共7层。TCP协议是目前使用最为广泛的协议,OSI是一个理想模型(硬件跟不上)OSI协议模型OSI就是一个开放的通信系统互联参考模型

2021-03-08 22:46:50 1

原创 ReentrantLock实现原理

这里写目录标题一、ReentrantLock二、AbstractQueuedSynchronizer三、ReentrantLock的实现ReentrantLock其他方法的实现一、ReentrantLockReentrantLock是基于AQS实现,AQS的基础又是CASReentrantLock中有三个静态内部类,分别为继承了AQS的抽象内部类Sync,以及继承了Sync的内部类NonfairSync与FairSync分别代表不公平锁和公平锁package java.util.concurrent

2021-03-07 23:50:24 14

原创 java集合的并发问题

文章目录一、Java集合中的快速失败机制解决并发修改问题的方法二、java并发编程volatile互斥锁sychronized公平锁/非公平锁可重入锁独享锁/共享锁乐观锁/悲观锁偏向锁/轻量级锁/重量级锁自旋锁锁消除synchronized和lock比较线程阻塞的代价三、同步集合和并发集合并发集合的实现原理ConcurrentHashMap实现原理CopyOnWrite容器CopyOnWriteArrayList的实现原理CopyOnWrite的应用场景CopyOnWrite的缺点一、Java集合中的快

2021-03-02 23:59:17 343

原创 java Map集合总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、HashMap二、Hashtable三、Properties四、LinkedHashMap五、TreeMap六、Map实现类的比较一、HashMapJava中针对hash表采用的是链地址法(拉链法)提供的实现,key决定数据的存放位置static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; 初始化容积static final float DEFAULT_LOA

2021-03-01 23:53:19 15 1

原创 java Map集合1

文章目录一、Map接口Map接口的定义Map接口中常见方法二、HashMap类定义构造器HashMap的存储结构HashMap的put方法的具体流程HashMap是怎么解决哈希冲突的数组长度要保证为2的幂次方的原因一、Map接口哈希表就是一种以键-值(key-indexed) 存储数据的结构,只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键hashCode都是整数,那么就可以使用一个简单数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值。简单的

2021-02-28 22:55:09 10

原创 java数据结构及集合框架2

文章目录一、Set接口实现类一、HashSet常用方法HashSet的特征三、LinkedHashSet四、TreeSetTreeSet的排序五、哈希表及二叉树哈希表二叉树一、Set接口特点:无序、不允许重复,是Collection接口的子接口,没有定义新方法,所有的方法都是Collection接口中所定义的方法实现类HashSet存储采用哈希表的方式进行存储,HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能LinkedHashSet是在HashSet的

2021-02-26 23:42:08 12

原创 java泛型

文章目录一、泛型的概念二、泛型的定义典型场景泛型类有界类型一、泛型的概念泛型是jdk5引入的类型机制,就是将类型参数化,它是早在1999年就制定的JSR14的实现。泛型作为一种安全机制而产生public void pp(String str){} //str实际上是形参public void pp(Integer str){}调用时按照位置对应传入实际数据,实际数据叫做实参pp("dddd")泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并

2021-02-25 23:01:31 5

原创 java数据结构及集合框架01

文章目录一、数据结构1、线性表2、链表概述集合数组和集合的比较集合框架中的接口Collection接口常见方法Iterator迭代器List接口Set接口常见的List接口的实现类ArrayList实现类Vector一、数据结构java中与集合相关的数据结构有:栈、队列、链表、树1、线性表(数组)存储区间是连续的,占用内存严重,故空间复杂度很大。但数组的二分查找(前提是必须有序)时间复杂度小,为O(1);数组的特点是:寻址容易(arr[n]=arr[0]+n*每个元素的长度,时间复杂度为O(

2021-02-24 21:50:34 11

原创 java多线程6

文章目录一、synchronized小结生产者/消费者模式二、多线程编程样例总结一、synchronized小结1、线程同步的目的是为了保护多个线程访问一个资源时对资源的破坏多线程的执行过程不可重现,可能会造成对共享数据的破坏volatile可见性和有序性,但是不能保证原子性synchronized可以保证原子性2、线程同步方法是通过锁(监视者)来实现,每个对象都有且仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该对象的同步方法(可以访问静态

2021-02-21 17:09:32 23

原创 java多线程5

文章目录一、线程安全同步处理的引入二、生产者消费者模式一、线程安全多线程的执行顺序不可重现,但是必须要求执行结果必须可以重现线程的共享数据操作不完整性就一定会出现数据被破坏,而导致结果无法预知的问题—线程的安全问题同步处理的引入在java语言中存在两种内建的synchronized语法:synchronized代码块和synchronized方法( 静态方法和非静态方法)可以解决线程安全问题首先synchronized将并行改为串行,当然会影响程序的执行效率,执行速度会受到影响。其次synch

2021-02-20 00:03:16 3

原创 java多线程4

文章目录前言一、线程状态切换前言一、线程状态切换线程从创建并启动到消亡共经历了5种状态:新建、就绪、运行、阻塞和死亡线程变化的5状态转换:1、新建状态(New):新创建了一个线程对象。new Thread()2、就绪状态(Runnable):线程对象创建后,其它线程调用了该对象的start()方法。只能针对处于新建状态的 线程对象调用start方法,否则IllegalThreadStateException 该状态的线程位于可执行线程池中,变得可执行,等待获取CPU的使用权。3

2021-02-18 23:06:03 17

原创 java多线程3

文章目录一、Executors创建线程池二、Java内存模型一、Executors创建线程池1.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收重用时则新建线程用来创建一个可以无限扩大的线程池,适用于服务器负载较轻,执行很多短期异步任务 public static void main(String[] args) { ExecutorService e = Executors.newCachedThreadP

2021-02-03 21:47:22 8

原创 java多线程2

文章目录一、线程池线程池的工作原理daemon线程线程组二、多线程编程细节Thread类Runnable接口Callable接口一、线程池创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数 有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5开始,Java API提供了Executor框架可以创建不同的线程池。比如单线程池,每次处理一个任务;数目固 定的线程池或者是缓存线程池(一个适

2021-02-02 23:56:42 4

原创 Java多线程

文章目录一、多线程概念二、线程的编程4种实现方法一、多线程概念多线程方式是指在一个程序中存在多个线程,每一个线程执行一个独立的任务,多个线程可以并发执行在Java中,一个应用程序可以包含多个线程,每个线程执行特定的任务,并可与其他线程并发执行多线程使系统的空转时间最少,提高CPU利用率,多线程编程环境用方便的模型隐藏CPU在任务间切换的细节在许多情况中可以显式地使用线程以提高程序的性能、响应速度或组织。要用到多线程的主要是需要处理大量的IO 操作时或处理的情况需要花大量的时间等等,比如:读写

2021-01-31 22:00:33 5

原创 java进程与线程基本概念

//待补

2021-01-30 22:42:06 6

原创 java流概念2

文章目录一、过滤流二、桥接转换流三、缓冲流四、键盘输入一、过滤流过滤流就是在节点流的基础上附加功能,在输入之后(后置处理,被装饰对象先执行)或者输出之前(前置 处理,先处理然后被装饰对象执行)进行一下额外的处理,最终实际操作是调用被装饰对象的方法完成工作,依靠这种装饰模式实现在节点流的基础上附加额外功能.当然也允许多个过滤流嵌套从而达到功能累加的目的自定义流实现循环13加密:public class Test01 extends FilterReader { public Test01(R

2021-01-26 23:47:23 25

原创 java流模型

文章目录一、字节流二、字符流文件节点流一、字节流父类InputStream和OutputStream, 一次一字节的操作方式,一般用于声音、图像、视频之类的二进制文件InputStreamread():int -1read(byte[]):int -1close():voidFileInputStream主要用于操作文件System.in 主要用于 接收用户输入OutputStreamwrite(int):voidwrite(byte[],int,int):voidclose

2021-01-26 00:00:50 22

原创 java流的概念及File类

文章目录一、输入输出种的流模型1、流的概念2、流的分类3、装饰模式4、在IO流定义中使用装饰模式二、File类1、常见的构造方法2、常用方法Path和Paths以及Files一、输入输出种的流模型1、流的概念Java中流的实现是基于java.io包定义的类层次结构java.io包通过数据流、序列化和文件系统为用户提供一种完成I/O操作的输入/输出流数据流是指所有的数据通信通道流是字节或字符数据的数据源或目的,用以隐藏数据传输细节,可以从流读取数据或将数据写到流,Java程序不能直接操纵I/O设

2021-01-24 20:39:02 9

原创 java异常处理

文章目录前言一、异常二、异常的捕获和处理前言是程序就必会出错,但是出错不是问题,关键是出错之后,错误如何处理?怎么处理? 程序可以从错误中恢复吗?恢复不了就崩溃么?一、异常意外产生和处理过程概述:运行时有许多因素引起出错,硬件失败,除法溢出,数组下标越界。出错的位置都在方法Method里出错后方法生成一个Exception对象,并把它交给JVM。这个对象里包括许多信息:错误类型,错误位置。JVM负责 处理Exception对象这种生成Exception对象并交给系统的过程叫抛出意外th

2021-01-20 23:17:17 13

原创 java中的接口及内部类

文章目录前言一、接口定义一个接口类实现接口接口和抽象类的异同点二、内部类内部类特点非静态内部类静态内部类前言一、接口用关键字interface:接口public interface Test { public void method(); public abstract void method(int a);}抽象类中的抽象方法不能省略abstract关键字,但是接口中的方法声明可以添加abstract也可以不写接口不能直接使用,必须有对应的实现类引入接口

2021-01-19 23:38:24 5

原创 java中的抽象及接口

文章目录一、抽象类抽象类的特点抽象类的作用二、模板模式一、抽象类关键字:abstract面向对象编程的核心是面向抽象编程,一般依赖抽象不依赖具体抽象方法是指没有函数体的方法,抽象方法必须在子类中给出具体实现,而抽象类本身不能创建对象有抽象方法的类必为抽象类,抽象类不一定有抽象方法抽象类的特点方法只有声明没有实现时,该方法就是抽象方法【不是空实现方法体,没有{}】,需要被abstract修饰,否则语 法报错。抽象方法必须定义在抽象类中,该类必须也被abstract修饰public vo

2021-01-18 23:32:53 12

原创 java二分法查找

二分法二分法的基本思想如下: 假设数据是按升序排序的,对于给定值x,从序列的中间位置开始比较,如果当前位置值等于x,则查找成功;若x小于当前位置值,则在数列的前半段中查找;若x大于当前位置值则在数列的后半段中继续查找,直到找到为止。二分查找是稳定的;他的时间复杂度为:设查找数据的长度为n,每次查找后数据长度减半,则有第1次查找 n/2…第k次查找 n/2^k最坏情况是数据长度为1的时候才找到(只剩1个数据时),此时查找次数为k,即:n/2^k=1时找到,k = log2n

2021-01-15 23:38:32 16

原创 java的多态性

文章目录一、静态二、多态性三、方法的重写和重载方法的重写(覆盖)方法的重载一、静态静态方法可以被继承和重写,静态方法也允许通过对象进行调用静态方法执行时很有可能并没有构建对象,所以 在静态方法中不允许使用this/super之类用于指定对象的关键字静态方法只能直接访问静态成员,不能直接访问非静态成员静态块类在执行时需要通过一个叫作类加载器的组件将程序加载到内存中,类在运行时一般不会发生变化,所以类 不会频繁加载,在整个运行过程中只加载一次,而且常驻内存静态块在类加载完毕后自动执行,而且

2021-01-15 22:59:23 7

原创 java中特殊的关键字

文章目录一、this和super关键字二、关键字final三、static关键字一、this和super关键字this用于指代当前对象;super用于指代父类对象this()表示调用另外一个构造器,super()表示调用父类中的某个构造器,()中的参数决定调用的是哪个构造器当定义构造器时,如果构造器方法中第一句不是this()或者super()时,默认第一句就是super()表示调用父 类的构造器 ,所以super和this不能同时出现在一个构造器中,如果父类只有有参构造器,那么子类构造器必须写

2021-01-14 23:09:04 8

原创 java继承的概念

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、类与对象的概念二、继承继承的特点三、Object类四、包的概念一、类与对象的概念对象是要进行研究的任何事物,从简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表 示抽象的规则、计划或事件。对象是一个客观存在的、唯一的实体,是一个类的动态实例,拥有自己的标识、数据与行为。对象具有状态,一个对象用数据值来描述它的状态对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为对象实现了数据和操作的结

2021-01-13 23:32:07 25 1

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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