自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JSP六大动作

重点:静态包含和动态包含的区别 3秒之后跳转页面: 用于在指定的域范围内查找指定名称的JavaBean对象。 如果在指定的范围已经存在该 bean 实例,那么将使用这个实例,而不会重新创建。 如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。 相关属性 id命名引用该Bean的变量。如果能够找到id和scope相同的Bean实例,jsp:useBean动作将使用已有的Bean实例而不是创建新的实例 class

2022-12-03 10:56:49 1920

原创 JSP语法小知识点

jsp语法小知识点,Element,HTML Comment,Hidden Comment,Declaration,Expression,Scriptlet,Include Directive,Page Directive,Taglib Directive,,,,,,,,Implicit Objects。

2022-12-02 19:45:00 219

原创 JSP三大指令

页面导入需要使用的类包。从字面含义上相互之间没有任何关系,实际应用中可以相互替代。,含义和实现是反的,所以相当长时间里是考核重点。是把包含的页面内容原封装不动的输出到包含的位置。发生错误后,需要跳转到哪个页面去显示错误信息。的脚本段代码中不需要针对受检型异常进行处理,标准标签库、第三方标签库、自定义标签库。中需要获取原始页面中的异常对象,则需要在。包含,包含可以分为静态包含和动态包含。可以在页面中指定对应的异常处理页面。页面有自己的异常处理方法。对象,则当前页面必须设置。能包含当前应用中的内容。

2022-12-01 21:25:15 667

原创 CSS3------盒模型

内边距是用来改变内容位置,由于默认页面的布局方向是从上到下,从左到右的。内边距是用来改变内容位置,由于默认页面的布局方向是从上到下,从左到右的。属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型。盒子自身不动,将水平方向上的相邻盒子向右推。盒子自身不动,将垂直方向上的相邻盒子向下推。盒子自身不动,将水平方向上的相邻盒子向右推。盒子自身不动,将水平方向上的相邻盒子向右推。盒子自身不动,将垂直方向上的相邻盒子向下推。盒子自身不动,将垂直方向上的相邻盒子向下推。

2022-11-25 19:00:00 1654

原创 CSS3------CSS选择器

本质上就是通过一个一个矩形盒子包起来,然后进行排版组合,那么接下来要详细研究这个标签盒子的细节结构,以帮助学习如何使用它,但是在开始研究它之前,我们先来了解一个概。此时,三个家庭成员都选中了这个男人,干同样的事情,但提出不同的需求,此时这个男人的心中就自然而然做出了排序,就有了谁在他心中更优先的问题。继承指的是子标记会继承父标记的所有样式风格,并可以在父标记样式风格的基础上再加以修改,产生新的样式,而子标记的样式风格完全不会影响父标记。类型选择器,可以选择一组标签,这组标签可以是不同类型的标签,例如。

2022-11-24 20:09:37 537

原创 CSS3------什么是css

层叠样式表,缩写为CSS,是一种样式表语言,用来描述HTML或XML(包括如SVG、MathML、XHTML之类的XML分支语言)文档的呈现。CSS描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题CSS是开放网络的核心语言之一,由W3C规范实现跨浏览器的标准化。CSS节省了大量的工作。简化代码、提高编程效率CSS指层叠样式表,样式定义如何显示HTML元素,样式通常存储在样式表中把样式添加到HTML中是为了解决内容与表现分离的问题。

2022-11-22 21:29:02 369

原创 H5基本开发2——(HTML常见标签)

header定义页面的或区域的头部nav定义导航链接article定义文章的内容section定义网页中的一个区块,例如章节、页眉、页脚等aside定义网页页面部分的侧边栏footer定义网页的尾部HTML标题Heading是通过-等标签进行定义的标签只用于标题。不要仅仅是为了生成粗体或大号的文本而使用标题块级元素但是这里会涉及搜索引擎的优化和推广的问题,一般建议一个html文档中只有1个h1,3个左右的h2HTML段落是通过。

2022-11-18 20:51:54 1644

原创 H5基本开发2——(HTML文档基本结构)

现实生活中,任何一个文档都是具有一定的格式,不同的文档,基本格式不同,例如:请假条、调休单、剧本、年中总结、十九大报告、等等,而我们所编写等html文档也是具有一定的编写基本格式的事实上W3C组织一直致力于规范的Html页面,但是事实上开发者基本不太理会严格规范。而html5事实上是一种妥协式的规范,HTML5规范十分宽松,甚至不再提供文档类型定义dtd。

2022-11-17 10:45:00 875

原创 H5基本开发1——(H5简单概述)

HTML是用来描述网页的一种语言HTML指的是超文本标记语言,是一种用于创建网页的标准标记语言标记语言是一套标记标签HTML使用标记标签来描述网页HTML文档的后缀名:.html或者.htm,两种后缀名没有区别,都可以使用HTML5是HTML最新的修订版本,2014年10月由万维网联盟W3C完成标准制定HTML5的设计目的是为了在移动设备上支持多媒体http协议:超文本传输协议—tcp。

2022-11-16 18:00:25 5314

原创 了解WEB

web即全球广域网,也称万维网,是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构web是一种交流方式。

2022-11-01 20:14:40 483

原创 MySQL视图

视图一方面可以帮助使用表的一部分而不是表的所有,另一方面也可以针对不同的用户制定不同的查询视图。比如针对公司的销售人员,只想给他看部分数据,而某些特殊的数据,比如采购的价格,则不会提供给他。再比如人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他人的查询视图中则不提供这个字段。

2022-10-10 14:29:36 78

原创 MySQL大对象Lob字段的处理

Lob实际上有2种类型,分别是用于存储大文本的字段Clob和存储二进制大量数据的字段Blob。不同的数据库处理方式略有区别,大字段一般都是采用流的方式进行处理

2022-10-08 20:33:56 590

原创 MySQL运算符

MySQL运算符主要包括3大类:比较运算符、算术运算符、逻辑运算符加+、减-、乘*、除/、求余%mysql>select1+2;

2022-09-28 20:34:50 83

原创 数据库介绍

关系型数据库是建立在关系数据模型基础上的数据库,借助集合代数的概念和方法处理数据库中的数据,同时也是一个被组织成具有描述的二维表格,表格的实质就是装载数据项的收集器,这些表格中的。数据库中的数据以及数据之间的关系按照一定的。组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并在一定的范围。数据能以不同的方式被存取或者重新召集,而不需要更新组织数据库的表格。关系模型的存取路径对用户透明,优点在于数据独立性、高安全性,简化编程。定所有的表和列,定义主外键,基于用户需求考虑范式的问题。

2022-09-21 19:56:12 534

原创 AIO NIO和BIO的区别

BIO是一种同步阻塞的通信模式,数据的读取写入必须阻塞在一个线程内等待其完成。是一个比较传统的通信方式,模式简单、使用方便,但并发处理能力低,通信耗时,依赖网速。

2022-09-19 19:40:37 153

原创 粘包问题的处理

- 常见的解决粘包、拆包的思路有:分隔符、固定消息长度、TLV格式消息等。

2022-09-15 20:15:00 435

原创 Java网络编程

计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。对象代表统一资源定位器,是指向互联网资源的指针,资源可以是简单的文件或目录,也可以是对复杂对象的引用,例如对数据库或搜索引擎的查询。网络程序则不保证数据的可靠性,但是协议简单、传输速度快(比如用在音视频数据传输,它们不需要很高的可靠性,偶尔丢帧是可以忍受的)类用于表示服务器套接字,其主要功能是监听客户端的请求,然后将客户端的请求连接存入队列中,默认请求队列大小是。

2022-09-14 19:29:40 360

原创 死锁和活锁

即存在一个处于等待状态的进程集合{Pl, P2, ..., pn},其中Pi等 待的资源被P(i+1)占有(i=0, 1, ..., n-1),Pn等待的资源被P0占有。此时若有其他进程请求该资源,则请求进程只能等待。3)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。2)不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放(只能是主动释放)。

2022-09-13 19:27:07 842

原创 HashMap的实现过程

HashMap底层使用数组+链表+红黑树实现,默认初始化大小Defalut_capcity是1

2022-09-06 20:50:47 260

原创 泛型的概述

泛型作为一种安全机制而产生泛型机制将类型转换时的类型检查从运行时提前到了编译时,使用泛型编写的代码比杂乱的使用object并在需要时再强制类型转换的机制具有更好的可读性和安全性。在声明List阶段E是什么类型不确定,这里的E仅仅充当占位符的作用,在具体调用时类型才能确定,而E的所有位置将被指定的类型所替代。如果全部检查成功,则编译通过,但编译通过后产生的.class文件中还有这个标识,即字节码的类文件中有泛型,但是运行时并没有泛型这就是泛型的擦除。实际上,从虚拟机的角度看,不存在泛型概念。

2022-09-05 20:18:50 137

原创 Stack栈和Queue队列

栈是一种用于存储数据的简单数据结构,栈与线性表的最大区别是数据的存取的操作,可以这样认为栈Stack是一种特殊的线性表,其插入和删除操作只允许在线性表的一端进行,一般而言,把允许操作的一端称为栈顶Top,不可操作的一端称为栈底Bottom,同时把插入元素的操作称为入栈Push,删除元素的操作称为出栈Pop。- 入列(添加元素)时,如果元素数量超过队列总数,会进行等待(阻塞),待队列的中的元素出列后,元素数量未超过队列总数时,就会解除阻塞状态,进而可以继续入列;删除队列头部的数据,同时返回删除的数据。

2022-09-01 20:04:45 104

原创 ArrayList、LinkedList和Vector的区别

2. ArrayList和LinkedList的区别是他们的数据结构不同,ArrayList是动态数组,LinkedList是双向链表,在查询操作较多,在特定位置插入数据和删除数据较少的情况下一般选用ArrayList,在特定位置插入数据,删除数据操作较多,查询较少的情况下一般选用LinkedList,但是在大多数应用中都是对查询效率要求较高,所以ArrayList集合应用更广泛一些。添加操做add调用的是linkLast方法,是在链表尾部添加数据,在指定位置新增数据,则针对索引需要进行合法性检查;...

2022-08-30 21:01:49 1261

原创 Collection、List和Set接口

Set接口中的所有方法都继承于Collection接口,没有新方法,允许使用null元素,只对 add()、equals() 和 hashCode() 方法添加了限制。Set中元素的存放顺序与元素的插入时间无关,是根据元素的hashCode值来排列的。删除指定位置上的元素,并返回被删除的元素,原始位置上的元素前移,但删除方法有可能产生二义性。调用的是remove(int)方法,不是指定元素删除,而是指定位置删除。删除指定元素,不是序号。- LinkedList:双向链表实现,增删快,查询慢 (线程不安全).

2022-08-29 11:58:17 290

原创 Lock和synchronized的区别

而Lock在发生异常时,如果没有主动通过unLock()去释放锁(所以建议使用的try/finally结构),则很可能造成死锁现象,因此使用Lock时需要在finally块中释放锁。在性能上来说,如果竞争资源不激烈,两者的性能是差不多的,而当竞争资源非常激烈时(即有大量线程同时竞争),此时Lock的性能要远远优于synchronized。3.Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronized时,等待的线程会一直等待下去,不能够响应中断。...

2022-08-27 10:19:16 81

原创 Lock接口

如果一个线程lock.lock()已经获取了锁,也可以多次调用这个方法(重入锁名称的来源),都可以获取到锁,但是获取多少次锁必须通过lock.unlock释放多少次,否则其它线程会阻塞在lock.lock()方法上,注意lock()方法和unlock()方法的执行次数必须匹配,所以一般建议使用lock.lock();当调用condition.await()阻塞线程时会自动释放锁,不管调用了多少次lock.lock(),这时阻塞在lock.lock()方法上线程则可以获取锁。用于获取写锁,写锁和其它锁互斥。.

2022-08-26 22:02:10 64

原创 生产者消费者模式

有了生产者/消费者模型,生产者和消费者就是两个独立的并发体,生产者把生产出来的数据往缓冲区一丢就好了,不必管消费者;消费者也是,从缓冲区去拿数据就好了,也不必管生产者,缓冲区满了就不生产,缓冲区空了就不消费,使生产者/消费者的处理能力达到一个。因为多了一个缓冲区,所以生产者和消费者并不直接相互调用,这一点很容易想到,这样生产者和消费者的代码发生变化,都不会对对方产生影响,这样其实就把生产者和消费者之间的强耦合解开,变为了生产者和缓冲区/消费者和缓冲区之间的弱耦合。//存储多个数据的生产者/消费者模型。...

2022-08-24 20:18:15 325

原创 synchronized

在Java中synchronized可保证在同一个时刻,只有一个线程可以执行某个方法或者某个代码块(主要是对方法或者代码块中存在共享数据的操作),同时还应该注意到synchronized另外一个重要的作用,synchronized可保证一个线程的变化(主要是共享数据的变化)被其他线程所看到(保证可见性,完全可以替代volatile功能),这点确实也是很重要的。- synchronized同步方法 在方法上添加同步关键字,当前的锁对象为当前对象---对象锁。针对一个类一般只会存储一个。

2022-08-23 19:03:37 133

原创 线程状态切换

1、在没有指定线程的优先级的时候,线程都带有普通的优先级。2、线程的优先级可以分为1到10;10代表最高的优先级,1代表最低的优先级,普通优先级是5。3、优先级最高的线程在运行时给予优先,但不能保证线程启动后立刻就进入运行状态。4、与线程池中等待的线程相比,正在运行的线程拥有更高的优先级。5、由调度程序来决定执行哪一个线程。6、用setPriority(int)来设定用线程的优先级。7、在线程的start方法调用之前,应该指定线程的优先级。

2022-08-22 21:54:15 151

原创 线程池学习

newSingleThreadExecutor创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO先进先出, LIFO后进先出, 优先级)执行适用于需要保证顺序执行各个任务,并且在任意时间点,不会有多个线程是活动的场景。线程池框架提供了两种方式提交任务,submit()和execute(),通过submit()方法提交的任务可以返回任务执行的结果,通过execute()方法提交的任务不能获取任务执行的结果。当提交一个任务时,线程池创建一个新线程执行任务,

2022-08-19 22:35:15 142

原创 Runnable和Callable

FutureTask是一个可取消的异步计算,FutureTask实现了Future的基本方法,提供startcancel 操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,get方法会阻塞当计算没有完成的时候,一旦计算已经完成, 那么计算就不能再次启动或是取消。Runnable接口只定义了一个方法public void run(),这个方法要求实现Runnable接口的类实现,Runnable对象称为可运行对象,一个线程的运行就是执行该对象的run()方法。......

2022-08-18 20:03:15 151

原创 Thread类

java针对线程提供了10级优先,优先级越高则获取更多的运行机会但是不同的操作系统不一定恰好支持10级优先,所以设置优先级时可能会出现在Java中的不同优先级映射到操作系统中相同的优先级上。void interrupt()中断线程,不是中断线程的执行,而是修改中断参数具体实现是依赖于调用interrupt方法后产生InterruptedException实现的。设置守护线程,守护线程是一种用于提供服务的线程,一般线程体中使用的是死循环,会在所有非守护线程退出后自动关闭。同时Thread类也是线程类。...

2022-08-17 20:38:15 200

原创 线程的四种创建方法

调用线程对象的start方法启动线程,不能直接调用run方法,否则是单线程Java采用的是单根继承体系,所以一旦继承于Thread类,则不能继承其它类,启动线程的唯一方法就是通过Thread类的start()实例方法,不能直接调用run()方法。当调用futureTask.get()方法时可以获取对应的线程对象的执行结果,如果线程并没有返 回时,当前线程阻塞等待。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。2、线程池判断工作队列是否已经满。......

2022-08-16 19:23:17 141

原创 进程基础学习

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源 ---是对系统资源的浪费,必须解决孤儿进程是一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。5、线程是指进程内的一个执行单元,也是进程内的可调度实体,两者都是动态的概念。进程和线程最大的区别在于:进程是由操作系统来控制的,而线程是由进程来控制的。3、线程在执行过程中需要协作同步。..

2022-08-15 19:00:45 183

原创 NIO基础

读文件操作Buffer类的常用方法 capacity():int返回Buffer的容量大小 hasRemaining():boolean判断是否还有元素可以进行处理 remaining():int返回当前位置和界限之间的元素个数 position():int返回当前操作的位置 mark():Buffer设置Buffer的标记位置,只能在0和position之间做标记 reset():Buffer将位置position转到mark所在的位置 rewind():Buf

2022-08-13 10:35:44 52

原创 特殊RandomAccessFile

不属于IO流,支持对文件的读取和写入随机访问DataInput接口中定义了基本数据类型的读操作,例如等DataOutput接口定义了基本数据类型的写操作,例如等是Java输入/输出流体系中功能最丰富的文件内容访问类,既可以读取文件内容,也可以向文件输出数据。类在创建对象时,除了指定文件本身,还需要指定一个mode参数指定的访问模式,该参数有如下四个值:r以只读方式打开指定文件。如果试图对该指定的文件执行写入方法则会抛出rw以读取、写入方式打开指定文件。...

2022-08-12 20:03:31 105

原创 挖坑游戏发牌方法

挖坑游戏发牌方法

2022-08-11 16:55:52 791

原创 福利彩票双色球摇球机制

福利双色球。

2022-08-10 19:57:07 365

原创 对象克隆和原型模型

如果原型对象的成员变量是引用类型,则将引用对象的地址复制一份给克隆对象,也就是说原型对象和克隆对象的成员变量指向相。序列化就是将对象写到流的过程,写到流中的对象是原有对象的一个拷贝,而原对象仍然存在于内存中。、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象,或者引用含有循环结构的时候。在深克隆中,无论原型对象的成员变量是值类型还是引用类型,都将复制一份给克隆对象,深克隆将原型对象的所有引用对象也复制一份给克隆对象。...

2022-08-09 14:32:00 82

原创 对象流的初认识

对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,通过网络将这种二进制流传输到另一个网络节点,其他程序一旦获取到这种二进制流,都可以将这种二进制流恢复成原来的。之类的资源类型的属性,不仅不能进行序列化操作,而且在序列化之前应该释放资源,在反序列化后应该重新创建资源链接。值是用于确保类序列化与反序列化的兼容性问题的,如果序列化和反序列化过程中这两个值不一样,那么将导致序列化失败。当一个父类实现了序列化,那么子类会自动实现序列化,不需要显示实现序列化接口,反过来,子。......

2022-08-08 14:58:06 51

原创 输入输出应用编程——4

两个类属于结点流,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流。用于实现向一个字符数组中写入数据,这个数组可以自动调整大小。如果文件不存在则新建文件,如果文件存在则覆盖文件内容。对应的文件必须存在并且是可读的,而构造。时,如输出文件已存在,则必须是可覆盖的。类似,支持操作的内容不同而已,操作。中写入数据,实现一个可边长的字串。,如果操作二进制文件建议使用。是文件字节流,是一种节点流。文件字节输出流的构造方法。就是数据的来源,也就是说。一个字符缓存可以使用。.

2022-08-07 21:47:49 139

空空如也

空空如也

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

TA关注的人

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