- 博客(73)
- 收藏
- 关注
原创 flexbox弹性盒子布局
flexbox弹性盒子布局传统盒模型依赖display、position、float属性2009年 w3c提出flex布局,可以简便完整响应式的实现各种页面布局,目前所有浏览器支持。父容器(1)flex-direction:子项目的排列方向row:从右向左;row-reverse:从左向右;column:自顶向下;column-reverse:自底向上;(2)flex-warp:子项目多行nowrap:不换行 ;wrap:自动换行;wrap-reverse:换行反转(3)felx-
2021-04-20 14:21:08
276
原创 2021-04-19
MyBatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。1、核心配置文件resources/mybatis-config.xml全局配置<?xml version="1.0" encodi
2021-04-19 19:22:44
157
原创 jsp开发模型
jsp开发模型1、jspModel1Jsp页面与JavaBeans共同协作完成任务Model 1模式的实现比较简单,适用于快速开发小规模项目。但从工程化的角度看,它的局限性非常明显:JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性和维护的难度。早期有大量ASP和JSP技术开发出来的Web应用,这些Web应用都采用了Model 1架构。2、jspModel2Jsp Model2中使用了三种技术JSP、Servlet
2021-04-17 17:24:29
340
原创 Servlet开发流程
Servlet开发流程1、定义Servlet类直接实现Servlet接口public class MyServlet implements Servlet{ //需要定义5个Servlet接口中声明的方法}为了简化开发,针对非标准协议,提供了一个抽象父类GenericServlet采用的是适配器模式一般用于游戏的服务器端开发public class MyServlet extends GenericServlet{ public void service(Ser
2021-04-10 22:45:23
226
原创 Servlet技术简介
Servlet技术Servlet规范是JavaEE规范中的一个部分,是用于扩展服务器功能的运行在服务器中的小型Java程序(即服务器端小应用程序),是实现了Servlet接口通过http接收和响应web客户端请求的类静态和动态因人因时因地而发生变化服务器web服务器:定位资源—Apachejsp/servlet容器:运行jsp或者servlet程序—Tomcat1、 Servlet概述Servlet是一种用于扩展服务器功能的服务器端组件技术。要求直接或者间接的实现Servlet接
2021-04-09 19:31:48
1232
原创 Tomcat安装与简介
Tomcat安装与简介Tomcat是一个轻量级的JSP/Servlet容器,可以用于中小型项目中的开发和调试,也有用于生产环境的。下载地址https://tomcat.apache.org/download-10.cgi下载完成后直接解压即可使用1、Tomcat的目录bin:tomcat启动、关闭之类的脚本文件启动服务器 startup.bat关闭服务器 shutdown.bat启动服务器后则可以在浏览器地址栏中输入localhost:8080,如果没有报错,可以看到一个页面则表示运行
2021-04-08 19:45:11
124
原创 HTTP协议之响应
HTTP协议之响应在接收和解释请求消息后,服务器返回一个HTTP响应消息。HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文。最重要的是响应状态码。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。1xx指示信息–表示请求已接收,继续处理;2xx成功–表示请求已被成功接收、理解、接受;3xx重定向–要完成请求必须进行更进一步的操作;4xx客户端错误–请求有语法错误或请求无法实现;5xx服务器端错误–服务器未能实现合法的请求。常见状态代码200 O
2021-04-07 19:40:15
111
原创 其他标签选择器
html标签选择器1、position定位方法的类型position属性指定一个元素(静态的,相对的,绝对或固定)的定位方法的类型。取值为:(1)static默认值。没有定位,元素出现在正常的流中。如果父组件没有定义大小,则子组件会撑开父组件。(2)absoult生成绝对定位的元素,相对于 static 定位以外的第一个父元素 进行定位;元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。如果父组件没有定义大小,则父组件可能会坍塌。(3)relat
2021-04-01 21:30:42
95
原创 html部分标签介绍
html部分标签介绍1、type属性input元素可以用来生成一个供用户输入数据的简单文本框。在默认的情况下,什么样的数据均可以输入。而通过不同的属性值,可以限制输入的内容。(1)text 一个单行文本框,默认行为(2)password 隐藏字符的密码框(3)search 搜索框,在某些浏览器键入内容会出现叉标记取消(4)submit、reset、button 生成一个提交按钮、重置按钮、普通按钮(5)number、range 只能输入数值的框;只能输入在一个数值范围的框(6)checkbo
2021-03-31 21:10:28
120
原创 html部分标签简介
html部分标签简介1、表单元素总汇form表示HTML表单input表示用来收集用户输入数据的控件textarea 表示可以输入多行文本的控件select 表示用来提供一组固定的选项option 表示提供提供一个选项optgroup 表示一组相关的option元素button 表示可用来提交或重置的表单按钮(或一般按钮)datalist定义一组提供给用户的建议值fieldset表示一组表单元素legend 表示 fieldset 元素的说明性标签label 表示表单元素的说明标签
2021-03-30 19:55:41
106
原创 html文本元素
文本元素所谓文本元素,就是将一段文本设置成相匹配的结构和含义。HTML5规范指出:使用元素应该完全从元素的语义出发。但是由于历史遗留及用户至上的原则,这种语义会宽松许多。文本元素相关元素名称及说明:a :生成超链接br :强制换行wbr :可安全换行b :标记一段文字但不强调strong :表示重要i :表示外文或者科学术语em :表示强调code :表示计算机代码var :表示程序输出samp :表示变量kdb :表示用户输入abbr :表示缩写cite :表示其他作品的
2021-03-29 21:19:14
335
原创 C/S架构与B/S架构简介
1、C/S架构服务器-客户机,即Client-Server(C/S)结构。 C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务应用程序分为两部分:服务器部分和客户机部分。服务器部分是多个用户共享的信息与功能, 执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能, 在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。特点一般需要在使用软件的电脑上安装特定软件可以充分使用客户端电脑资源完成一些特定任务可多人同时使用,并且可
2021-03-24 21:31:14
2792
原创 html5相关介绍
html5相关介绍1、HTML的概念http:超文本传输协议,是TCP/IP协议簇中应用层的一种协议,默认端口号为80。底层采用的是TCP连接。采用的是一种断开式连接的方式,目前有http1.0和http1.1两个版本,http1.1允许在一段时间内保持连接。2、HTML5的特点(1)向下兼容;(2)用户至上,要求浏览器最大程度容错显示;(3)化繁为简;(4)无插件范式;(5)访问通用性;(6)引入语义;(7)引入原生媒体支持;(8)引入可编程内容;3、开发工具(1)文本编辑器
2021-03-23 21:11:32
330
原创 创建索引
创建索引创建索引的方式有直接创建、修改表添加和创建时直接创建三种。1、直接创建CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name (column(length),…) [ASC|DESC]– 普通索引create index bknameIndex on book(bookname) ;– 唯一索引create unique index unique_Index on book(bookId) ;–单列索引crea
2021-03-19 21:08:03
1012
原创 索引
索引1、什么是索引MySQL官方对索引的定义为:索引Index是帮助MySQL高效获取数据的数据结构。索引的本质:索引是数据结构。数据库查询是数据库的最主要功能之一,希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。5种索引类型:普通索引、唯一索引、主键索引、组合索引和全文索引。普通索引和唯一索引是根据索引的功能来划分普通索引是MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值。唯一索引的索引列的值必须唯一,但允许空值。如果是组合索引,则列的值得
2021-03-18 23:25:36
1275
6
原创 数据引擎
数据引擎数据库引擎是数据库用于存储、处理和保护数据的核心服务,不同的数据库引擎有其各自的特点,如存储机制、索引技巧、主键的处理、锁的粒度等特点便随着引擎的不同而变化。因此,针对自己项目特点选择合适的数据库引擎可以改善服务器端存储性能。engine=innodb MyISAMcreate table t_users(…) engine=innodb default charset utf8;SHOW ENGINES命令来查看MySQL使用的引擎在MySQL中不需要在整个服务器中使用同一种存储引擎,针
2021-03-17 22:49:30
535
原创 数据库技术--子查询
子查询子查询是指一个查询语句嵌套在另一个查询语句内部的查询。在执行时,首先执行子查询中的语句,然后将返回的结果作为外层查询的过滤条件。带IN关键字的子查询举例1:查询年龄为20岁的员工的部门命令:SELECT * FROM department WHERE id IN (SELECT did FROM employee WHERE age=20);举例2:查询不存在年龄为20岁的员工的部门命令:SELECT * FROM department WHERE did NOT IN (SELECT d
2021-03-15 21:26:06
1699
原创 三种Statement类
1、PreparedStatementpublic interface PreparedStatement extends Statement{}//基本用法PreparedStatement提供的功能:1、允许sql语句中使用?占位符,表示参数。2、支持预编译功能。3、在一定程序上可以避免sql注入漏洞。2.Connection接口Statement createStatement() 创建用于执行SQL语句的Statement对象PreparedStatement prepare
2021-03-13 23:13:09
3138
原创 MySQL运算符
MySQL运算符1、算数运算符只能针对数值类型进行计算,如果是非数值类型则自动转换,如果转换失败则0进行处理。运算符语法说明+a+b加,操作之和-a-b减,操作数之差--a操作数取负,一元操作*a*b乘,操作数之积/a/b除,操作数之商%a%b取模,操作数除后的余数2.比较运算符运算符语法说明=a=b如果两个操作数相等为真!=或<>a!=b或者啊<>b如果两操
2021-03-12 21:15:52
239
原创 使用JDBC访问MySQL
使用JDBC访问MySQL建立连接每个JDBC应用程序至少要有一个JDBC驱动程序版本,JDBC驱动程序是Driver接口类的实现需要将数据库生产厂商提供的驱动jar包添加到classpath中。驱动jar包可以从官网上下载或者从maven之类的仓库中下载。1、在java项目中新建文件夹Folder,名称为libs;2、将下载的jar包拷贝到libs文件夹下;3、将jar包添加到classpath上。Driver类是驱动程序厂家实现的接口,Driver使DriverManager和JDBC应用
2021-03-11 20:14:06
354
原创 数据库的数据类型
数据库技术1.创建数据表的语法规则CREATE TABLE <表名>–(<列名> <数据类型> [ <列级完整性约束条件> ]–[,<列名><数据类型>[ <列级完整性约束条件>] ] …–[,<表级完整性约束条件> ] );其中:<表名>:所要定义的基本表的名字<列名>:组成该表的各个属性(列)<列级完整性约束条件>:涉及相应属性列的完整性约束条件<
2021-03-10 13:08:06
791
原创 常用mysql服务命令
常用mysql服务命令启动数据库服务器 net start mysql启动客户端登录mysql数据库:mysql -u username -p例如 mysql -uroot -p123456 有安全隐患,所以一般建议mysql -uroot -p回车后再输入口令退出mysql客户端:quit查看mysql版本:select version(); 在mysql的命令行客户端中执行关闭数据库服务:net stop mysql数据库服务器开机自启:mysqld --install创建数据库
2021-03-09 23:55:43
158
2
原创 MySQL数据库
@Overridepublic String toString() { String str=null; String str1 =null; String str2 =count+""; switch (clor){ case hongtao: str1=“♥”; break; case meihua: str1=“
2021-03-08 22:10:16
71
原创 数据库技术
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。
2021-03-06 23:46:58
513
原创 死锁问题
死锁问题所谓死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。1.特殊的概念饥饿指的线程无法访问到它需要的资源而不能继续执行时,引发饥饿最常见资源就是CPU时钟周期。在程序中使用的Thread.yield或者Thread.sleep(0)表明该程序试图克服优先级调整问题,让优先级更低的线程拥有被CPU调度的机会。Thread.sleep(0)不等于不写活锁指的是线程不断重复执行相同的操作,但每次操作的结果都是失败的。活锁通常发生
2021-03-05 21:53:00
121
原创 集合小习题-单词排序
集合习题–单词排序从控制台输入若干行英文内容(输入回车一行结束,输入quit表示输入完成)以单词的方式放入集合中,将这些单词忽略大小写按照出现次数自然排序,如果次数相等,则按照字母顺序倒序后打印出来。public class A { public static void main(String[] args) throws Exception { try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in)
2021-03-03 22:43:44
266
1
原创 Java并发编程
Java并发编程三种性质可见性:一个线程对共享变量的修改,另一个线程能立刻看到。缓存可导致可见性问题原子性:一个或多个CPU执行操作不被中断。线程切换可导致原子性问题有序性:编译器优化可能导致指令顺序发生改变。编译器优化可能导致有序性问题。三个问题安全性问题:线程安全活跃性问题:死锁、活锁、饥饿性能问题:使用无锁结构:TLS线程 局部 存储,Copy-On- Write,乐观 锁;Java的原子类,Disruptor无锁队列减少 锁的持有时间:让锁细粒度 。如ConcurrentHashmap;再如读
2021-03-02 21:35:26
61
原创 Map接口的实现
Map接口的实现HashMap 采用拉链法实现的hash表Hashtable 采用拉链法实现的hash表头插法 立即初始化 线程安全继承于Directory抽象类Properties类定义: public class Properties extends Hashtable<Object,Object>**用途:**提供了读写配置文件.properties(后缀不绝对)的方法和持有key/value的配置信息Properties文件的定义 abc.properties
2021-03-01 23:54:42
141
原创 Map接口
猜数字public class Caishu { private Integer v = 0; public Caishu() { Random r = new Random(); v=r.nextInt(1000); } public String guess(Integer parameter1) { String res = "小了"; if(parameter1!=null) { /* if(v.intValue()>parameter1.intValue
2021-02-28 23:41:03
120
原创 数据结构(2)
JAVA程序冒泡排序public class Maopao { public static void main(String[] args) { int[] arr = new int[10]; generateNumber(arr); for(int temp:arr) System.out.print(temp+"\t"); System.out.println(); bubble(arr); for(int temp:arr) System.out.pri
2021-02-27 23:48:48
80
原创 Collection和Collections的区别
Collection和Collections的区别Collection是java.util下的接口,它是各种集合的父接口,继承于它的接口主要有Set 和ListCollections是个java.util下的类,是针对集合的帮助类,提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。编程练习题用程序给出随便大小的10 个整数,序号为1-10,【序号是存储时产生的序号】按从小到大顺序输出,并输出相应的序号。1、定义类用于封装产生的序号和对应的数据。2、因为需要对数据进行排序,则必须是可
2021-02-26 21:47:05
789
原创 Set接口
Set接口特点:无序、不允许重复,是Collection接口的子类没有定义新方法,所有的方法都是Collection接口中所定义的方法1.实现类(1)HashSet存储采用哈希表的方式进行存储,HashSet采用HashCode算法来存取集合中的元素,因此具有比较好的读取和查找性能;(2)LinkedHashSet是在HashSet的基础上添加一个额外的链表结构可以记录存储数据的顺序;(3)TreeSet采用的是树状结构进行数据存储。2.HashSet类定义public class Has
2021-02-25 20:24:50
117
原创 泛型
泛型1.什么是泛型泛型是jdk5引入的类型机制,就是将类型参数化,泛型作为一种安全机制而产生泛型在本质上是指类型参数化。所谓类型参数化,是指用来声明数据的类型本身,也是可以改变的,它由实际参数来决定。在一般情况下,实际参数决定了形式参数的值。而类型参数化,则是实际参数的类型决定了形式参数的类型。2.使用泛型的优势1、可读性,从字面上就可以判断集合中的内容类型;2 、类型检查,避免插入非法类型。3 、获取数据时不在需要强制类型转换3.泛型类所谓泛型类generic class就是具有一个或多个
2021-02-24 13:24:05
63
原创 常见的List接口的实现类
常见的List接口的实现类(1)ArrayList:数组实现,查询快,增删慢,轻量级;(线程不安全)(2)LinkedList:双向链表实现,增删快,查询慢 (线程不安全)(3)Vector:数组实现,重量级 (线程安全、使用少)1.ArrayList实现类public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess,Cloneable, java.io.
2021-02-23 21:19:34
1838
原创 数据结构(1)
数据结构1、线性表(数组)存储区间是连续的,占用内存严重,故空间复杂度很大。但数组的二分查找(前提是必须有序)时间复杂度小,为O(1);数组的特点是:寻址容易(arr[n]=arr[0]+n*每个元素的长度,时间复杂度为O(1))插入和删除困难(可能会引发一半以上的数据元素移动,时间复杂度为O(n));Java中的数组是定长的,如果需要变长则需要自行编程实现 。2、链表存储区间离散(数据不是连续存放的),占用内存比较宽松,故空间复杂度很小,但操作元素的时间复杂度很大,达O(N)。链表的
2021-02-22 19:12:13
98
原创 线程安全
线程安全多线程的执行顺序不可重现,但是必须要求执行结果必须可以重现线程的共享数据操作不完整性就一定会出现数据被破坏,而导致结果无法预知的问题—线程的安全问题1.同步处理的引入在java语言中存在两种内建的synchronized语法:synchronized代码块和synchronized方法( 静态方法和非静态方法)可以解决线程安全问题首先synchronized将并行改为串行,当然会影响程序的执行效率,执行速度会受到影响。其次synchronized操作线程的堵塞,也就是由操作系统控制CPU的
2021-02-21 23:22:37
74
原创 线程小程序--龟兔赛跑
龟兔赛跑1.动物类Animalpublic abstract class Animal extends Thread{ public static final int sumLength = 20; protected int length = sumLength; protected Finish end = null; @Override public void run() { while(length>0) { runing(); } } public abstr
2021-02-20 19:34:17
254
2
原创 线程小程序--生产者消费者
生产者消费者小程序1.共享资源Basket类在这里插入代码片2.生产者com类在这里插入代码片3.消费者Producter类在这里插入代码片4.测试类Test在这里插入代码片
2021-02-19 23:35:47
62
原创 线程状态切换
搭建IDE环境常见的IDE有官方推荐的Android Studio和Eclipse+ADT。ADT开发方式google已经宣布不再更新先下载对应的Android SDK后再安装IDE,其中下载SDK的步骤不是必须的。也可以先安装Android Studio,然后通过Android Studio自动下载SDKSDK开发环境使用预编译的内核和文件系统,屏蔽了Android软件架构第三层以下的内容,可以者主要基于Android的系统API进行应用层的开发。如果需要开发底层的内容,则可以使用NDKJDK1.7+,
2021-02-18 22:30:03
138
原创 volatile关键字
hello AndroidAndroid应用属于应用层,构建在Android系统所提供的API之上。每个Android平台对应支持一个API级别,会隐含对所有早期API的支持用户开发的应用和Android内置的应用层属于同一个层次,调用API的方式相同,只是是否被包含在默认的Android系统创建项目注意事项:1、工程名中不能含有特殊符号,例如中文和空格。2、变量、方法、类名称不要取中文名称。3、应用的包名称事先需要考虑好,因为android系统是通过包名称来区分不同的应用的,所以包名称必须具备唯一性
2021-02-16 22:14:37
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人