自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java面试题 Servlet & JSP & Tomcat

Java面试题Servlet & JSP & Tomcat部分1.浏览器输入URL到页面加载经历了哪些过程?1、输入网址2、DNS解析:域名解析,其实就是根据用户输入的网址去寻找它对应的IP地址3、建立tcp连接:浏览器向 web 服务器发送一个 HTTP 请求(TCP三次握手,四次挥手)4、客户端发送HTPP请求:5、服务器处理请求:(服务器的永久重定向响应,浏览器跟踪重定向地址)6、服务器响应请求:服务器返回一个 HTTP 响应7、浏览器展示HTML8、浏览器发送请求

2020-09-30 16:24:44 642

原创 Java面试题 Web前端 & 网络协议

Java面试题Web前端 & 网络协议1.Ajax请求有几种返回值 1、 服务端需要返回一段普通文本给客户端,Content-Type=“text/plain”2 、服务端需要返回一段HTML代码给客户端 ,Content-Type=“text/html”3 、服务端需要返回一段XML代码给客户端 ,Content-Type=“text/xml”4 、服务端需要返回一段javascript代码给客户端,Content-Type=“application/javascript”5 、服务

2020-09-28 20:43:49 250

原创 Java面试题 数据库 & JDBC

Java面试题数据库 & JDBC1.数据库三范式是什么1NF:所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项2NF:在1NF的基础上,所有非主属性都完全依赖于每一个候选关键属性(在1NF基础上消除非主属性对主码的部分函数依赖)3NF:在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)2.SQL分为哪几个大类DQL:数据查询语言,用于对数据进行查询,如selectDML:数据操作语言,对数据进行增加、修改、删除,如insert、udp

2020-09-27 22:34:22 345

原创 Java面试题 JavaSE部分

Java面试题JavaSE部分:1.Object类自带哪些方法?getClass() 获取对象对应的Class对象;hashCode() 获取对象的hash码;equals() 判断对象的值是否相等,原始equals()方法是判断对象地址是否相等,要重写该方法;clone() 克隆方法,调用对象的该方法只是浅复制,即只会复制字面量。也即基本类型会被复制对应的值,引用类型也会被复制对应的值(只不过是地址的值,复制出来的对象引用的跟原来对象引用的是同一个对象,也就是为什么叫做“浅复制”的原因)。要

2020-09-26 17:27:23 263

原创 Spring(二)

解耦合 - 工厂springIOC -> 反转控制ApplicationContextClassPathXmlApplicationContext: 类路径XMLFileSystemXmlApplicationContext: 文件系统AnnotationConfigApplicationContext: 注解ApplicationContext:对象单例模式, 立即加载, 初始化容器的时候, 就已经将容器中注册的对象全部创建好BeanFactory: - 了解延迟加载, 当程序根

2020-09-26 17:16:47 54

原创 Spring(一)

spring框架优势spring框架IOC DIspring框架JUnit整合spring框架数据库整合, 事务处理spring框架AOPspring框架整合MyBatisSSH: Struts2 Spring HibernateSSM: SpringMVC Spring MyBatis降低程序耦合性直接new对象, 当类不存在时, 代码就会编译错误 - 耦合性高降低耦合性:解决:1.通过反射的方式, 传递的是类的全限定类名字符串2.将全限定类名通过配置文件的方式读取到程序中.

2020-09-25 13:05:00 73

原创 MyBatis(三)

SSM框架图:持久层(Mybatis)总图:1.1 Mybatis 的连接池技术我们在前⾯的 WEB 课程中也学习过类似的连接池技术,⽽在 Mybatis 中也有连接池技术,但是它采⽤的是⾃⼰的连接池技术。在Mybatis的SqlMapConfig.xml配置⽂件中,通过<dataSourcetype="pooled">来实现 Mybatis 中连接池的配置。1.2 Mybatis连接池的分类将它⾃⼰的数据源分为三类:    &nbsp

2020-09-24 10:36:32 87

原创 MyBatis(二)

parameterType:1.简单类型 - 别名 #{随意}2.Pojo类型 - #{属性名.属性名…}3.POJO包装类型 - QueryVo- 如果需要传递多种参数resultType:1.简单类型2.POJO类型: a.对象的属性名和表的字段名一致b.字段名和属性名不一致 - 查询的时候给字段起别名3.resultMap: 实体类和表的关系映射ognl 表达式:它是 apache 提供的⼀种表达式语⾔,全称是:Object Graphic Navigation Language

2020-09-22 21:47:18 83

原创 MyBatis(一)

什么是框架:框架(Framework)是整个或部分系统的可重⽤设计,表现为⼀组抽象构件及构件实例间交互的⽅法;另⼀种定义认为,框架是可被应⽤开发者定制的应⽤⻣架。前者是从应⽤⽅⾯,⽽后者是从⽬的⽅⾯给出的定义。简⽽⾔之,框架其实就是某种应⽤的半成品,就是⼀组组件,供你选⽤完成你⾃⼰的系统。简单说就是使⽤别⼈搭好的舞台,你来做表演。⽽且,框架⼀般是成熟的,不断升级的软件。框架要解决的问题:框架要解决的最重要的⼀个问题是技术整合的问题,在 J2EE 的框架中,有着各种各样的技术,不同的软件企业需要从 J

2020-09-22 21:38:10 118

原创 Linux

一:安装Centos虚拟机二:设置网路1.NAT - 连接外网2.host-only - 连接电脑主机ifconfig - 查看ip地址ping - 测试网络连通三:开启ftp服务 默认端口号211.在Centos中安装ftp服务 - 联网yum install -y vsftpd2.开启ftp服务service vsftpd start3.开启ssh服务/etc/init.d/sshd start4.关闭防火墙 - 不推荐service iptables stop开启防火墙

2020-09-21 09:22:24 77

原创 maven

优势:项⽬构建、管理创建、开发、编译、打包、部署、运⾏… 以插件形式,jar包管理jar包设置本地仓库路径: 修改conf/settings.xml<localRepository>路径</localRepository>maven⼯程⽬录结构 - 掌握:初学maven的命令3. 清除 mvn clean4. 编译 mvn compile5. 测试 mvn test6. 打包 mvn package中央仓库地址:https://mvnreposit

2020-09-21 09:22:15 60

原创 JavaWeb(八)

类加载器:引导类加载器: java.lang.String -> rt.jar JDK基础类扩展类加载器: JDK自带扩展类应用类加载器: ClassPath 自定义类com.zzxx.utils.DruidUtils -> 自定义类org.apache.commons.beanutils.BeanUtils -> 自定义类getResource(“com/zzxx/utils/db.properties”)双亲委派模型:加载一个类的时候, 会先由引导类加载器和扩展类加载

2020-09-20 20:25:15 114

原创 JavaWeb(七)

对象感知监听器:1.将对象存储在session中和将对象从session中移除2.session对象的钝化, 活化在服务器关闭时, session没有消失, 持久化在磁盘上tomcat/work/Catalina/localhost/…/web08/SESSIONS.ser将session数据持久化到磁盘上 -> session钝化将磁盘上的session文件恢复到内存中 -> session活化String name -> 可以保存在磁盘上User user ->

2020-09-20 20:19:58 111

原创 JavaWeb(六)

JavaEEServletContextServlet(service) -> HttpServlet(doGet/doPost)单例模式 -> 线程不安全init destroy <load-on-startup>HttpServletRequest请求行: uri?get参数 method请求头: Map cookie referer user-agent请求体: post请求参数request.getParameterXX()request.setCha

2020-09-20 20:17:02 176

原创 JavaWeb(五)

JSTL标签:Java Standard Tag Library通常配合EL表达式来使用1.导入jar包(2个)2.引入标签库<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>3.使用标签<c:if>设计模式思想: JavaEE三层架构web: servlet, 用于和前端进行交互service: 业务逻辑dao: 数据库操作 CRUDentity/pojo/domain/bean:

2020-09-20 20:10:46 99

原创 JavaWeb(四)

Session: 服务器中的会话技术存储数据 - 域对象域对象范围: 一次会话 获得session对象: // 当客户端第一次调用该方法, 服务器会创建一个session对象并返回 // 当客户端再次调用该方法, 服务器直接将之前的session返回 request.getSession(); 服务器第一次为客户端创建Session对象的时候, 会分配一个JSESSIONID编号 并且将 JSESSIONID 传递给客户端的cookie进行保存 一次会话结束,

2020-09-20 19:56:27 89

原创 JavaWeb(三)

HttpServletRequest请求行: GET/POST URI http/1.1请求头: Map user-agent referer请求体: POST请求参数获得请求参数: String getParameter(name) String[] getParameterValues(name) Map<String, String[]> getParameterMap()乱码: POST: request.setCharacterEncodi

2020-09-20 19:49:09 188 1

原创 JavaWeb(二)

@WebServlet("/xx") <servlet> <servlet-name>自定义 <servlet-class>Servlet的全限定类名 </servlet> <servlet-mapping> <servlet-name>自定义 <url-pattern>/自定义路径 </servlet-mapping>Servlet对象: 一次默认第一次接收

2020-09-20 19:42:10 108

原创 JavaWeb(一)

1.xml:文本标记语言标签 属性 属性值 标签体html: 专注于页面展示xml: 专注于文本内容记录 和 properties 文件格式 都被用于配置文件1.大小写敏感2.属性值不能省略3.属性值要加引号4.标签名可以自定义指定了xml的版本信息,以及文件编码,必须在文件第一行 <?xml version="1.0" encoding="utf-8" ?>XML解析:dom4j.jarxml约束:DTD约束 dtd文件使用步骤:详见xml文件添加位置:

2020-09-20 19:25:52 190

原创 Web(五)

jQuery -> 函数 $ -> jQuery1.页面加载函数2.选择器#id.classelement3.添加事件 click(function() {})4.样式调整 css(css属性, 属性值)5.文本内容的设置innerHTMLinnerText -> text()value6.显示效果show() hide() toggle()slideDown() slideUp() slideToggle()fadeIn() fadeOut() fad

2020-09-20 19:20:10 69

原创 Web(四)

1.案例一: 表格的隔行换色显示 - 需求管理平台知识点:1.获得元素document.getElementById(id); --> 只能获得一个getElementsByName(name属性的值) --> 获得多个getElementsByTagName(tr)getElementsByClassName(class)2.table 标签中的属性rows[] tBodies[] cells[]3.this表示当前事件的对象4.动态添加事件JS获得元素.onclick

2020-09-20 19:09:36 62

原创 Web(三)

JavaScript: 完成页面的动态效果1.ECMAScript2.事件 - 标签有关onblur - 失去焦点, 通常用于input标签onchange - 内容改变, 通常用于select标签onclick - 单击, 可以用于所有元素onfocus - 获得焦点, 通常用于input标签onkeydown - 键盘按下, 通常用于input标签onload - 某个页面或图像被完成加载, 通常用于body标签onmouseover - 鼠标被移到某元素之上onmouseout -

2020-09-19 20:34:20 116

原创 Web(二)

1.表单标签 form提交: url?username=张三&password=123&sex=on&hobby=on&hobby=on#2.label 标签for = ‘id值’3.div: 块标签, 自带换行 -> 块元素span: 普通的文本标签, 不带换行 -> 行内元素为了配合css来使用的4.css的使用1.标签中添加style属性2.head中添加style标签3.link引入外部css文件5.css选择器基础选择器: id

2020-09-19 20:19:06 107

原创 Web(一)

Web前端: node.js vue.js react.jsWeb前端的IDE: HBuilder vsCode WebStrome NetBeans…浏览器: chrome firefox ie operaHTML: 超文本标记语言,展示页面内容.html .htm -> 网页CSS: 美化页面JavaScript: 动态页面效果JQueryBootstrap标签: www.baidu.com, 大小写不敏感有容错性预定义标签: 有规范,已经定义好的标签<a 属性=

2020-09-19 20:14:19 104

原创 JDBC(二)

JDBC规范:1.导入jar包2.加载驱动 com.mysql.cj.jdbc.Driver3.通过DriverManager 获得连接 Connectionurl username passwordurl: jdbc:mysql://localhost:3306/databasejdbc:mysql:///database4.Statement PreparedStatement5.执行SQL: execute() executeUpdate() executeQuery()6.如果有

2020-09-19 19:44:07 134

原创 JDBC(一)

JDBC:Java DataBase ConnectiveJava连接数据库的规范 - 接口java.sql -> JDBC 规范相关的接口,类实现类: 各个数据库厂商来提供1.Connection - 连接a.引入jar包mysql-connector-java-5.1.8-bin.jar推荐数据库版本: 5.5 5.7 5.xmysql-connector-java-8.0.16.jar推荐数据库版本: 8.xb.加载驱动 - 类Class.forName(“驱动类名”

2020-09-19 19:38:23 839

原创 MySQL(三)

– 数据库事务:业务层面上不可分割的最小单位– DML:insert delete update - 对数据库的修改操作才必须要事务– DQL: select 可以不需要事务– MySQL:事务是自动提交的– 提交commit:操作生效– 回滚rollback:恢复到操作之前的数据– 事务特性,事务的隔离级别– 隔离级别解决事务的并发问题– 1.脏读:一个事务读取到了另一个事务未提交的数据– 2.幻读:一个事务两次读取,数据的数量、个数不同 insert delete– 3.不可重复读:

2020-09-19 19:30:58 106

原创 MySQL(二)

聚合/分组函数:分组countmaxminavgsumselect xx, xx from table_name group by field_name;注意:select 后面接的内容:组函数,出现在group by中的字段单表查询完整sql的结构:select 字段、函数from 表where 条件group by 分组字段having 组函数条件order by 排序方式limit startRow, pageSize 分页– 公司中的平均薪资

2020-09-19 19:29:08 72

原创 MySQL(一)

关系型数据库非关系型数据库 -> 大数据背景环境变量 cmd 能识别出对应的工具/命令path bin目录mysql server - mysql服务mysql workbench - mysql官方客户端连接服务器的协议 TCP/IP 协议 Client/ServerHTTP协议 Broswer/ServerFTP/IP协议 ftp 21套接字:ip:portIP:服务所在电脑上的IP地址port:电脑上用于区分不同服务的唯一标识mysql:3306 o

2020-09-19 19:22:50 82

原创 API(十二)

方法引用: Lambda 的简化对象 类 this super 数组普通方法 静态方法 构造方法 new数组1.方法引用是对Lambda的优化, 换句话说是在Lambda内部调用了方法2.Lambda内部调用的方法使用的参数, 就是Lambda传递进来的参数3.方法引用也遵循了之前学习的面向对象的理论知识普通方法需要对象来调用静态方法需要类来调用…1.通过对象名引用成员方法a.准备一个函数式接口b.准备一个方法 method, 用于接收 函数式接口 作为方法参数c.准备一个类,

2020-09-19 19:11:49 247

原创 API(十一)

属性集: Properties, 仅支持String类型的属性映射extends Hashtable implements Mapkey - value,推荐使用的方法void setProperty(String key, String value)String getProperty(String key)加载属性集:void load(Reader)void load(InputStream)JDK 8 特性函数式编程: Lambda表达式(函数式接口作为方法的参数)函数式接口:

2020-09-19 19:11:33 164

原创 API(十)

IO: Input Output构造器:File(String path)File(String parent, String child)File(File parent, String path)API:boolean exists();boolean isFile();boolean isDirectory();void createNewFile();void mkdir();void mkdirs();void delete();File[] listFiles();F

2020-09-18 20:55:49 84

原创 API(九)

1.File - 文件类, 可以表示文件或者目录构造方法:new File(String 文件路径)new File(String 父路径, String 子路径)常用API:获得文件/目录的绝对路径获得file对象中所有的文件 listFiles()File file = new File(".");file.listFiles(new FileFilter() {@Overridepublic boolean accept(File f) {// 处理了f, 让他返回true, 表

2020-09-18 20:55:03 209 1

原创 API(八)

线程通信: 共享资源wait() notify()notify() - 每次只能唤醒一个线程, 只能唤醒等待时间久的那个线程notifyAll() - 唤醒所有正在等待的线程wait() -> 只能被notify() 或者 notifyAll() 唤醒wait(long) -> 到时间以后, 自动醒来线程池: Executors 工厂类中的方法newCachedThreadPool(): 创建一个根据需要创建新线程的线程池,但在可用时将重新使用以前构造的线程。newFixedTh

2020-09-18 20:53:53 95

原创 API(七)

线程:程序进程线程多线程实现的两种方式:1.自定义一个线程类, extends Thread重写 run 方法创建自定义的线程对象开启线程 start()2.自定义一个任务类, implements Runnable重写 run 方法创建自定义的任务对象通过任务对象, 构造一个线程对象开启线程 start()3.以上两种方式的匿名内部类改写注意:1.不是哪个线程先start, 就先执行哪个线程,线程的执行顺序, 是不固定的线程Thread的构造方法:1.new 自定义线

2020-09-18 20:52:32 195

原创 API(六)

JavaSE 小结1:1.Object 11个方法toString() equals() hashCode()2.String 不可变字符序列正则表达式 \w . \d + ? *split3.StringBuilder / StringBufferappenddeletereplaceinsert4.long Date Calendar时间显示 - Date, 格式化 SimpleDateFormat DateFormat时间计算 - Calendar, add set

2020-09-18 20:50:03 188

原创 API(五)

Collection(I): Iterableadd(E e)-追加元素, remove(E e)-删除指定元素contains(E e)-是否包含指定元素addAll(Collection)Object[] toArray()E[] toArray(E[])List(I): ArrayList:数组 LinkedList:双向链表 Vector可使用下标add(index, E e), remove(index)get(index), set(index, E e)Set(I)Que

2020-09-18 20:48:15 121

原创 API(四)

1.迭代器中使用迭代, 然后直接使用 集合.remove(迭代出的元素)异常: ConcurrentModificationException安全隐患解决: 不能在迭代器内部使用集合自己的remove方法用 iterator.remove() 来替代remove(): 删除当前游标所在位置的元素不会改变游标位置2.迭代器的简化 -> 增强for循环 forEachfor(每一次迭代出来的元素临时变量 : 要迭代的集合/数组) {}例如:for(String s : col)

2020-09-18 20:44:04 148

原创 API(三)

1.String -> 字符序列 (中文\英文)JVM -> 1个char = 2个byte Unicode操作系统 -> windows:GBK->GB2312 Linux:UTF-8 ISO8859-1UTF-8: 1char = 3bytegbk: 1char = 2byteAPI: byte[] getBytes(); -> 根据默认字符集来编码 new String(bs); -> 按照默认字符集解码 byte[] get

2020-09-18 20:41:18 81

原创 API(二)

正则表达式: 字符串的一些排列规则 -> String格式的校验: 邮箱格式/身份证格式/电话号码格式长短的判断: 至少多少个字符, 最长多少个字符内容的限定: 只能有字母\数字\下划线…开始符号: ^结束符号: $ 常用标识 []: 一个字符的位置 例如: [abc] -> 这个字符的位置内容只能是a或者b或者c [a-z] -> 这个字符的位置内容可以是所有的小写字母 [0-9] [A-Z]

2020-09-18 20:38:56 98

空空如也

空空如也

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

TA关注的人

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