计算机基础
javHao
这个作者很懒,什么都没留下…
展开
-
outofmemoryerror: unable to create new native thread
错误原因是创建的线程数量达到了上限解决1:linux下调调整系统参数 ulimit -a 句柄数量 echo 12000> /proc/sys/kernel/threads-max和线程数量2降低xss等参数java的线程实际使用的是操作系统的线程 这是一直被诟病的地方 利用os线程去操作线程栈等 而每一个os线程也会有自己独特的线程缓存 在堆空间中分了一部分线程缓存给每一个线程 所以xss线程缓存越小 理应线程总数就越大3调整代码 改变线程池创建使用方式...原创 2021-07-01 12:52:58 · 317 阅读 · 0 评论 -
并发编程
Tsequential是算法串行版的执行时间,而Tconcurrent是算法并行版的执行时,P是可以进行并行化处理的代码的百分比,而N 是你准备用于执行该算法的计算机的核数。基本并发类Thread类:该类描述了执行并发Java应用程序的所有线程。Runnable接口:这是Java中创建并发应用程序的另一种方式。ThreadLocal类:该类用于存放从属于某一线程的变量。ThreadFactory接口:这是实现Factory设计模式的基类,你可以用它来创建定制线程。同步机制:原创 2021-01-18 23:09:20 · 136 阅读 · 0 评论 -
mqtt协议
发布订阅模式的轻量级协议构建在tcp ip协议之上可以用 少代码 有限带宽 为连接远程设备提供实时可靠的消息服务,在物联网小型设备 移动应用方面有广泛的应用特点1发布订阅模式 可以同时发布信息 也可以同时订阅信息 全双工...原创 2021-01-08 13:25:32 · 119 阅读 · 0 评论 -
springboot源码分析之--自动配置
看springboot的pom依赖的parent是spring boot starter parent(1)首先是资源过滤 过滤application配置文件 推荐使用yml(2)其次是pluginsmanagement 插件管理 配置了依赖环境dependency 所以在写自己的dependency的时候不用写版本**springbootapplication**元注解...原创 2020-03-01 14:13:22 · 166 阅读 · 0 评论 -
监听器归纳
**监听器**1 ServletContextListener 两个方法 (1)服务器启动时创建ServletContext对象时执行此方法 : 用ServletContextEvent 获取ServletContext对象 进而来获取上下文对象 可以管理项目的上下文路径 (将上下文路径放到ServletContext域中) (2)服务器停止时或卸载项目时 Serv...原创 2019-06-16 12:56:53 · 123 阅读 · 0 评论 -
Spring总结
**IOC**控制反转:new 对象的操作交给spring容器来使用 使用xml配置或者注解配置就可以直接注入使用: bean对象一定要有无参构造 在创建Spring容器ApplicationContext对象时候创建bean对象(默认) 调用getBean多次 也只会创建同一个bean对象 可以用FileSystemXmlApplicationCo...原创 2019-06-06 08:16:24 · 151 阅读 · 0 评论 -
eclipse mybatis配置文件提示配置
复制 “http://mybatis.org/dtd/mybatis-3-config.dtd”并且在add里面关联config.dtd配置文件mapper配置文件同理“http://mybatis.org/dtd/mybatis-3-mapper.dtd”原创 2019-04-29 22:26:35 · 301 阅读 · 0 评论 -
MyBatis大全总结
首先讨论一下基本的概念~:(1)MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。(2)MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。(3)MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.(4)是半自动化...原创 2019-04-29 22:21:13 · 980 阅读 · 0 评论 -
数据库的隔离级别
一般数据库有三个问题:1 脏读:读取还未被提交的数据(此问题不可以忍耐)2不可重复读:T1读取了一个字段后 T2更新了该字段并提交 T1再次读取该字段 值会不同(此问题勉强可以忍耐,因为数据永久生效了)3 幻读:T1从一个表中读取一个字段后 T2在该表中插入了一些新的行 后 T1再次读取同一个表 会发现多出几行(此问题勉强可以忍耐,因为数据永久生效了)数据库为了解决这三个问题提供了四种隔离...原创 2019-04-20 16:20:44 · 106 阅读 · 0 评论 -
预编译sql
当我们发送一条语句到数据库后,会发成 解析->优化->执行的 过程:一般数据库内存分为:1库缓冲区:用于存放sql语句,如果某条sql语句不经常改动就会放入内存中的库缓冲区中,下一次执行相同语句(连大小写都要一样才算做一样的~)的时候直接从内存中获取对应语句执行 注意:用占位符的很多语句算是不经常修改的 例如:insert into table1 values(1,sss)...原创 2019-04-20 15:18:10 · 563 阅读 · 0 评论 -
javaweb三大组件归纳
三大组件:Servlet程序 Filter过滤器 listener监听器监听器1 ServletContextListener:监听ServletContext对象的创建和销毁 编写一个类实现ServletContext接口 实现监听器的回调方法contextInitialized 和 contextDestroyed方法 web.xml中配置这个监听器 <listen...原创 2019-04-24 16:53:37 · 488 阅读 · 0 评论 -
JSON和Ajax归纳
**json的定义**json是由花括号组成,然后里面都是键值对。并且每个键都由引号引起来。键和值之间使用冒号进行分隔。那么每组键值对之间使用逗号分隔。var json = {“key” : value ,“key2” : value2};值可以是string,number,数组类型,json对象。json数组。var jsonObj = { "key1" : 12,...原创 2019-04-28 23:45:55 · 215 阅读 · 0 评论 -
SVN归纳总结
**基本操作** 检出(Checkout) 把服务器端版本库内容完整下载到本地。 在整个开发过程中只做一次。 更新(Update) 把服务器端相对于本地的新的修改下载到本地。 提交(Commit) 把本地修改上传到服务器。**基本指令操作**status svnserve 检查svn的状态(1)查看/etc/sysconfig/s...原创 2019-06-19 11:54:32 · 190 阅读 · 0 评论 -
redis归纳
首先需要介绍一下nosql数据库:1没有声明性的查询语言2没有预定义的模式3最终一致性 而非ACID属性4非结构化和不可预知的数据5CAP定理 三选二 不可能全满足6高性能,高可用性和可伸缩性**key的基本操作**redis默认有16个数据库: CONFIG GET databases; 获取某个配置项的值 DBSIZE 获取当前数据库里面有多少个数据...原创 2019-06-19 17:13:46 · 134 阅读 · 0 评论 -
nginx归纳总结
**作用默认监听80端口**(1)可以提供HTTP服务 但是仅限于静态资源 这就是跟tomcat的区别(2)虚拟主机:可以在一台服务器上虚拟出多个网站(3)方向代理 负载均衡服务器 这里需要知道反响代理是负载均衡的实现原理**虚拟主机**配置server root表示以什么为根目录 index 表示默认访问的页面 error_page 表示出现错误的时候找的...原创 2019-06-20 11:24:23 · 141 阅读 · 0 评论 -
springMVC总结
springMVC的核心就是DispatcherServlet程序,所有的请求都是先进入这个Servlet对象。 官方的图:使用:(1)准备log 和 spring的xml配置文件(2)在web.xml中配置dispatchServlet方式一:<!-- The front controller of this Spring Web application, responsi...原创 2019-06-10 16:50:02 · 360 阅读 · 0 评论 -
java校招我的归纳总结
**数据库**1数据库有哪些索引?原理是什么唯一索引:UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录,对于单列惟一性索引,这保证单列不包含重复的值。对于多列惟一性索引,保证多个值的组合不重复。主键索引:数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的...原创 2019-06-11 09:56:14 · 951 阅读 · 0 评论 -
Dubbo
传输的对象要实现序列化接口,也是因为序列化了 所以不会有乱码问题provider 可以用spring的IOC扫描即可 因为是使用的dubbo的http服务 不需要controller了<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans...原创 2019-06-21 10:11:08 · 367 阅读 · 0 评论 -
elasticsearch归纳(kibana使用)
**倒排索引**根据文本找id **数据存储的概念**Relationnal DB -> Databases -> Tables -> Rows -> Columns elasticsearch - > indices -> Types ->Doucments -> Fields**kibana操作**存入文档PUT...原创 2019-06-21 14:49:28 · 196 阅读 · 0 评论 -
FastDFS归纳
FastDFS作为分布式文件系统 首先我门需要知道传统方式的问题**传统文件管理方式的缺陷**1web应用重新部署会导致用户上传文件会丢失2集群环境下 如果有多个tomcat 没有文件同步机制 所以用户可能会发现文件突然消失 又突然出现3扩容缺乏弹性4如果每个文件在每个服务器只存了一份 那么就会有单点故障问题**FastDFS的功能**1文件不会存储在应用服务器上面 不受应...原创 2019-06-21 17:20:10 · 142 阅读 · 0 评论 -
git和github归纳
SVN是集中式版本控制工具 git是分布式版本控制工具工作区(写代码) git add -》 暂存区(临时存储数据 可撤回) git commit -> 本地库 (记录历史版本 不可撤回)**使用说明书svn没有版本库 而git有 这是最大的区别**(1)本地库初始化 git init 生成 .git 目录 (2)设置签名以区别不同开发人员 仅在当前本地...原创 2019-06-22 19:26:33 · 138 阅读 · 0 评论 -
linux
**首先介绍一下三种网络连接方案:**1桥接模式 和物理机使用同一个局域网,在局域网上物理机和虚拟机可以互相访问。物理机和虚拟机的IP地址不能重复。2NAT模式 虚拟机和物理机不在同一个局域网内,不能被局域网内的其他主机访问。 好处1:不受物理机局域网IP网段限制; 好处2:借助网络地址转换机制通过物理机接入Internet3HostOnly 虚拟机也不在物理机所在的...原创 2019-06-18 17:29:12 · 282 阅读 · 0 评论 -
jsp归纳
jsp主要是为了解决Servlet程序输出html页面代码过于繁琐的事情~在我们第一次访问jsp页面的时候 tomcat会在work/catalina/目录下产生jsp.java和class文件,可以发现jsp就是Servletjsp头部文件声明(page指令):<%@ page language="java" contentType="text/html; charset=UTF-8...原创 2019-04-22 22:47:30 · 187 阅读 · 0 评论 -
tomcat归纳
首先要知道tomcat提供的是对jsp 和 servlet的支持 所以也叫做 Servlet容器安装以及目录1解压即可用~2目录: bin 保存tomcat程序的可执行文件 conf 保存tomcat服务器的配置文件 lib 保存tomcat运行时候需要的jar包 logs 保存tomcat运行时输出的日记 temp 保存临时的数据 webap...原创 2019-04-21 15:23:25 · 148 阅读 · 0 评论 -
dom4j解析xml
1利用SaxReader对象读取xml文件 创建Document对象2document.getRootElement(); 返回根元素对象 root3 root 的elements(标签名)获取子元素 返回一个Element的LIst4遍历每一个Element...原创 2019-04-21 11:39:25 · 119 阅读 · 0 评论 -
在父接口中获取子类实现类实现父接口时所携带的泛型类型
可以在父类的无参构造器中写:Type type = this.getClass().getGenericSuperclass(); //Type是一切类型的父类型 此代码可以后去带泛型的父类类型ParameterizedType t = (ParameterizedType) type ; //获取参数化类型Type[] types = t.getActualTypeArguments(...原创 2019-04-20 22:39:58 · 806 阅读 · 0 评论 -
DBUtils的使用
1首先导入jar包2增删改1创建QueryRunner对象 (不考虑事务的话可以直接传入连接池对象)2需要Connection对象(考虑事务的情况下),sql语句,参数3关闭自己传入的连接3查询1调用queryRunner对象的query方法 传入Connection对象 sql ResultSetHandler对象 参数 注意的点在于ResultSetHandler对象 (...原创 2019-04-20 17:15:10 · 201 阅读 · 0 评论 -
数据库连接池
DBCP数据库连接池C3P0数据库连接池首先说说DBCP:方式一:1创建BasicDataSource 对象并设置相对应的url username...2设置initialsize maxActive等参数3返回Connection 对象方式二:1利用BasicDataSourceFactory.createDataSource(properties)从properties配置文...原创 2019-04-20 16:52:46 · 147 阅读 · 0 评论 -
mysql数据库大全总结
DML数据操纵语言:查询和修改数据记录(INSERT UPDATE DELETE SELECT)DDL数据定义语言:定义数据库的结构(CREATE ALTER DROP )DCL数据控制语言:控制数据库的访问(GRANT REVOKE COMMIT ROLLBACK SAVEPOINT LOCK)SELECT:选择全部数据select * from table1; 别名:空格➕名字 ...原创 2019-04-15 23:29:49 · 319 阅读 · 0 评论 -
eclipse dynamic project动态工程目录结构
src:存放java源文件JRE System Library :JavaSE的类库Apache Tomcat :javaEE(javaWeb)的类库build:src源码翻译成为.class字节码后存放的目录WebContent:存放html css js jsp等文件WEB-INF:该目录是一个受服务器保护的目录,里面的资源是不可以通过浏览器直接访问的只能通过服务器代码间接访问 例如...原创 2019-04-21 15:52:18 · 1305 阅读 · 0 评论 -
Http协议内容
HTTP协议请求的内容:GET1请求行:(1)请求的方式GET (2)请求的资源路径 (3)请求的协议和版本HTTP/1.12请求头:POST: 1请求行: (1)请求的方式POST (2)请求的资源路径 (3)请求的协议和版本HTTP/1.1 2请求头 空格 3请求体:客户端提交的数据所以一般有哪些是get请求哪些是post请求呢:Get:1for...原创 2019-04-21 18:08:04 · 496 阅读 · 0 评论 -
文件的上传和下载归纳(包括乱码及浏览器问题)
文件上传的标配就是下图:1如果我们使用Servlet:设置了如上的属性后再在Servlet里面使用request getParameter就拿不到任何内容了~ 因为在文件上传的时候 浏览器会收集所有的表单项的信息并且以二进制流的形式提交给服务器,所以服务器要用流的形式进行接受方式1: (1)用 request.getInputStream接受数据 接受后的是二进制数据 需要进行解析 ...原创 2019-04-25 22:29:05 · 299 阅读 · 0 评论 -
ThreadLocal总结
基本使用:1可以像map一样存取数据 key是当前的线程对象2一般情况Threadlocal类实例都是static类型3在ThreadLocal对象实例中保存的数据 只要线程销毁了,虚拟机JVM就会自动释放对应的数据1set方法 2get方法都不需要参数 参数就是当前线程...原创 2019-04-27 20:08:12 · 153 阅读 · 0 评论 -
listener监听器归纳
**监听器**1 ServletContextListener:监听ServletContext对象的创建和销毁 编写一个类实现ServletContext接口 实现监听器的回调方法contextInitialized 和 contextDestroyed方法 web.xml中配置这个监听器 <listener><listener-class><...原创 2019-04-26 19:40:56 · 219 阅读 · 0 评论 -
Filter过滤器归纳
Filter过滤器**filter可以对请求进行拦截,对响应进行过滤:虽然jsp可以使用代码验证用户是否登录,但是像一些html页面以及图片的访问权限只能通过filter进行控制1创建一个类实现Filter接口2实现doFilter方法进行请求的拦截3web.xml中配置拦截地址(配置的标签跟Servlet的一样 /*表示工程名下的所有资源) 注意 filter里面成功了话要调用 ...原创 2019-04-26 19:38:31 · 367 阅读 · 0 评论 -
表单重复提交问题解决以及谷歌kaptcha验证码的实现
一般造成表单多次重复提交的原因可以归纳成一下三个:1如果使用转发的话 用户可以多次刷新页面导致多次的重复请求–使用重定向解决2因为网络延迟 用户点击完后没反应 导致多次重复点击 网络通畅后会收到很多次请求~3用户成功提交后 回退浏览器记录 重新提交~为了解决这几个重复提交的问题 可以用验证码解决 我们使用谷歌kaptcha验证码来讲解具体实现过程1导入kaptcha jar包 使...原创 2019-04-26 14:52:00 · 496 阅读 · 0 评论 -
Cookie 和 Session 归纳
首先介绍下基本概念:cookie是服务器通知客户端让其保存健值对的一种形式,客户端有了cookie之后,每次请求就会发送给服务器,每个cookie最大是4kb**服务器创建cookie**1Cookie cookie = new Cookie("",""); 创建一个cookie2response.addCookie(cookie); 通知客户端保存这个cookie之后就会在...原创 2019-04-26 13:32:19 · 167 阅读 · 0 评论 -
web中的相对路径和绝对路径总结
在web工程中,路径我们可以写成相对路径 ,也可以写成绝对路径。如果当前浏览器地址栏地址是:http://127.0.0.1:8080/xx/cc.html相对路径:. /表示当前目录(http://127.0.0.1:8080/xx)。./ 表示上一级目录(http://127.0.0.1:8080/)./params 表示访问(http://127.0.0.1:8080/xx/dd)...原创 2019-04-22 11:59:29 · 452 阅读 · 0 评论 -
BASE标签的作用
因为在转发的时候客户端地址栏是不会改变的 而我们使用的相对地址又是根据浏览器地址栏中的地址进行跳转的 所以此时调用的相对地址很可能会出错,此时就需要BASE标签了base标签可以设置页面中相对路径的参数的基准路径,有了base标签后 页面的相对路径就不会再参照浏览器地址栏了...原创 2019-04-22 11:34:14 · 275 阅读 · 0 评论 -
Servlet乱码问题
GET请求中文乱码:因为客户端发送的数据会进行UTF-8编码操作 然后发送到服务器后又进行iso-8859-1解码 所以会造成中文的乱码解决方法1:1用iso-8859-1进行编码 getBytes()2然后用utf-8进行解码 new String( , "UTF-8")解决方法2:在server.xml中添加URIEncodingPOSt请求中文乱码:解决方法1:1用i...原创 2019-04-22 11:12:06 · 188 阅读 · 0 评论