- 博客(43)
- 问答 (3)
- 收藏
- 关注
原创 关于IDEA中mybatis中找不到配置文件
在IDEA中默认是不会编译普通包下的XML文件的,因此哪怕路径是正确的也会任然找不到文件;需要在File-Project Structure- Modules中把放XML文件的包设置为Sources...
2019-06-06 10:22:59
2935
原创 记录一下mysql的exist和in
Mysql会在大多数情况下把in转化为exist,除非in中的内容是固定的exist的子查询是相关查询,它会先执行外部查询,然后对于每一条外部查询的值都会执行一次子查询子查询N个值,外部查询M个值,使用exist会执行N*M次子查询...
2019-05-27 17:19:28
483
原创 关于jdk11没有jre的tomcat配置问题
因为jdk11没有jre,所以在tomcat中配置的时候就只用设置JAVA_HOME变量就可以了,JRE_HOME会自动使用JAVA_HOME但是我在运行的时候发现了一个问题,./startup.sh会启动不了,报jre不存在的错误,但是加上sudo就可以了,然后发现没加sudo的时候路径是${JAVA_HOME}/jre,但是加上sudo后路径就和JAVA_HOME一样了,不知道这是为什么??...
2019-05-13 15:40:24
3817
1
原创 Java核心技术关于内部类的一些要点
内部类内部列方法可以访问该类定义所在的作用域中的数据(通过外围类引用)内部列可以对同一个包中的其他类隐藏起来(设置为private)内部类注意事项内部类中所有静态域都必须是final,因为如果不为final,每一个外部类的对象都会有一个单独的实例内部类不能有static方法(可以有,但是没必要)两个引用 外...
2019-04-28 17:04:02
164
原创 关于Java的lambda表达式的一些总结
Lambda表达式格式: ()->{}表达式如果只有一句话,可以不用{},也不能用{};无需指定返回类型,会由上下文推导而得;lambda表达式要么每一个分支都需要有返回值,要么每一个分支都没有返回值;如果表达式只有一个参数,可以省略();lambda表达式内部可以捕获外部变量的值,但这个值必须是最终变量,即不能改变;在lambda表达式中声明一个与局部变量同名的的变量或...
2019-04-25 13:45:32
219
原创 Java多线程编程核心技术——线程间的通信
等待/通知模式wait()方法将当前线程置入"预执行队列"中,释放锁,直到收到通知或者到达规定时间,才会继续参与对锁的争夺,得到锁后,从wait()代码位置开始继续执行,只有在同步方法或同步块中使用wait(),否则抛出IllegalMonitorStateException(非受查异常,不需要catch)notify()/notyfyAll()也要在同步方法或同步块中调用,否则抛出Ill...
2019-04-24 14:59:30
164
原创 Java多线程编程核心技术——synchronized和volatile
某一段代码中的私有变量,不存在线程安全问题脏读:无效数据的读出如果多个线程共同访问一个对象那个中的实例变量,则有可能出现线程安全的问题。 synchronized关键字关键字synchronized使方法成为线程安全的,且取得的锁是对象锁,不是一段代码或者方法当做锁调用关键字synchronized声明的方法一定是排队运行的,只有共享的资源读写才需要同步化一个线程拿到了一个syn...
2019-04-23 17:13:44
192
原创 java多线程编程核心技术——基础知识
线程是一个子任务,CPU以不确定的方式,或者说是以随机的时间来调用线程中的run方法。执行start()方法的顺序并不代表线程启动的顺序start()方法通知 线程规划器 此线程已经准备就绪,等待调用线程对象的run()方法,具有异步执行的效果继承Thread类和实现Runnable接口的方式并没有不同,但是实现接口能解决Java只有单继承的问题synchrinized加锁,互斥区,临界区...
2019-04-22 19:58:46
145
原创 IDEA将Java Web项目打成war包,解决jdk11不带jre的问题
War包File->Project Structure->Artifacts->Web Application:ArchiveName:设置war包的名字;Output directory:war包打包完成后输出的位置;选择Directory Content选择web项目的根目录效果如下创建两个文件夹 WEB-INF 及其子目录 classes选中cla...
2019-04-20 20:46:18
895
原创 Tomcat设置session的活化与钝化
什么是活化与钝化当一个会话开始时,Servlet容器会为会话创建一个HttpSession对象。Servlet容器在某些情况下会把这些HttpSession对象从内存中转移到永久性存储设备中(钝化),并在需要访问HttpSession信息时再把它们加载到内存中(活化)。上述过程被称为会话的持久化,持久化有两个好处:节约内存空间确保服务器重启或单个Web应用重启后,能够恢复重启前的会话。...
2019-04-19 14:25:47
1271
原创 Java使用asList把数组转化为List的坑
Arrays类中的asList方法返回的是一个"假的"ListasList方法不能接收基本数据类型 int[] nums = {1,2,34,5,5}; List list = Arrays.asList(nums); System.out.println(list.size()); System.out.println(lis...
2019-04-18 16:45:48
269
原创 Docker在阿里云上搭建私有仓库
创建私人仓库```docker run -d -p 5000:5000 --restart=always --name registry registry获取镜像```docker run -d \ -p 5000:5000 \ -v /opt/data/registry:/var/lib/registry \ registry 仓库会被创建在容器的 /v...
2019-04-14 19:16:42
1045
原创 配置Tomcat自带的数据库连接池
配置数据源1. 在Context元素中加入Resource元素。修改Context的方法有很多种,这里我们选择在项目目录下的META-INFO创建context.xml文件来进行修改(这样的话这个数据源只是对此web应用有效)。<Context> <Resource name="jdbc/xx" auth="Conta...
2019-04-07 15:28:54
1247
原创 Prim算法
普里姆算法(Prim’s algorithm),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小void MiniSpanTree_Prim(Graph graph) { int* lowcost = new int[graph.arcNum]; int* adjvex = new int[g...
2019-04-01 19:53:53
233
原创 数据结构——二叉树的遍历与创建
二叉树的特点每个结点最多只有两棵子树,不存在度数大于2的节点二叉树是有序的,其次序不能任意颠倒斜树 - 所有节点都只有左子树的称为左斜树; - 所有节点都只有右子树的称为右斜树; - 在斜树中,每一层只有一个结点,**斜树的结点个数==深度**满二叉树 - 在一棵二叉树中,如果所有分支节点都存在左子树和右子树,并且所有**叶子都在同一层上**,这样的二叉树被称为满二叉树。 完...
2019-03-26 20:36:51
163
原创 java动态代理详解
什么是代理利用代理我们可以在运行时创建一个实现了一组给定接口的新类。这种功能只有在编译时无法确定需要实现哪个接口时才有必要使用。 何时使用代理 - 代理类可以在运行时创建全新的类,这样的代理类能够实现指定的接口。 - 我们不能再运行时定义这些方法的新代码,而要提供一个调用处理器,即一个实现了InvocationHandler接口的类对象。 创建代理对象无论何时用proxy调用某个...
2019-03-21 12:35:32
194
原创 Java Web ——实现登录注册(Servlet+Jdbc)
Web三层架构Web层——转发jsp页面,封装数据传给Service层处理Service层——接受Web层传来的数据,处理业务逻辑Dao层——实现对数据库的操作,提供接口给Service层调用三层架构有利于更好的解耦,不同层各司其职。开发顺序这里我是置底向上的开发。目录结构cn.login.dao.implcn.login.daocn.login.exceptioncn....
2019-03-19 22:25:11
2699
原创 关于c++的动态分配数组
在c++中,数组的长度的值应该是一个具体的数字,不能是一个变量。通常我们借助指针来给动态分配数组一维数组int n;cin &gt;&gt; n;int *a = new int[n] 二维数组int n;cin &gt;&gt; n;int **a = new int*[n];for(int i = 0 ;i &lt; n; i++){ a[i] = new int[n]...
2019-03-18 16:05:56
2761
原创 关于java中的io流做了几个小测试
读取一个2.2M的txt文本,并将它复制到另一个txt上。1.使用字节流,不加任何缓冲,耗时7784毫秒。2.使用字节流,人工加缓冲,耗时10多毫秒3.使用字节流和包装流,耗时30-50毫秒4.使用字符流,耗时300-400毫秒5.使用字符流加包装流,耗时比上一个稍微大一点6.使用字符流,手动加缓冲区,耗时100 - 200毫秒...
2019-03-12 17:31:11
253
原创 关于java枚举类的理解
java核心技术卷上的枚举类示例代码是这样的:enum Size{SMALL("S"),MEDIUM("M"),LARGE("L"),EXTRA_LARGE("XL");private String abbreviation;private Size(String abbreviation){this.abbreviation=abbreviation;}public String ge...
2019-03-07 11:16:18
222
原创 Java Web学习——FileUpload组件实现文件上传
需要commons-io,Commons-fileupload这两个jar包import org.apache.commons.fileupload.FileItem;import org.apache.commons.fileupload.FileUploadException;import org.apache.commons.fileupload.servlet.ServletFile...
2019-03-02 14:02:45
473
转载 文件上传: FileItem类、ServletFileUpload 类、DiskFileItemFactory类
文件上传:ServletFileUpload负责处理上传的文件数据,并将表单中每个输入项封装成一个FileItem对象中, 在使用ServletFileUpload对象解析请求时需要根据DiskFileItemFactory对象的属性sizeThreshold(临界值)和repository(临时目录)来决定将解析得到的数据保存在内存还是临时文件中,如果是临时文件,保存在哪个临时目录中?。所以,...
2019-03-01 21:42:20
1146
原创 Java Web学习——JSP
什么是JSPJSP全名为Java Server Pages,java服务器页面。JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在!为什么需要JSPJSP是为了简化Servlet的工作出现的替代品,Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的。JSP工作原理JSP本身就是一种Servlet,JSP会被编译成为一个Servlet。JS...
2019-02-28 10:36:12
390
原创 Java Web学习——IDEA中使用jdbc
1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。配置JDBC1.在官网下载mysql的驱动,最好下载旧版本的,8点几版...
2019-02-27 14:21:39
941
原创 Java Web学习——javaBeen
javabeen是什么JavaBean就是一个遵循一种java设计模式的普通的java类。JavaBeen通常遵循以下规则:存在无参的构造函数成员属性是private封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法。JavaBeen具有封装,重读,可用的特点JSP行为--JavaBeanjsp:useBeanjsp:useBean标签...
2019-02-25 20:36:08
883
原创 Java Web学习——JSP内置对象
pageContextpageconfigrequestresponsesessionapplicationexceptionoutOUT对象的API - int getBufferSize()【得到缓存大小】 - int getRemaining()【得到未使用缓存的大小】 - boolean isAutoFlush() ...
2019-02-25 15:55:00
181
原创 Java Web学习——Session
session的概念Session 是另一种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务器把用户的信息以某种的形式记录在服务器,这就是Session。session常见APIlong getCreationTime();【获取Session被创建时间】String getId();【获取Session的...
2019-02-24 12:34:11
183
原创 Java Web学习——Cookies
会话基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话.Cookies访问流程浏览器访问服务器,如果服务器需要记录该用户的状态,就使用response向浏览器发送一个Cookie,浏览器会把Cookie保存起来。当浏览器再次访问服务器的时候,浏览器会把请求的网址连同Cookie一同交给服...
2019-02-23 13:40:51
153
原创 Java Web学习——HttpServletRequest
一.getRequestURL方法返回客户端发出请求时的完整URL。getRequestURI方法返回请求行中的资源名部分。getQueryString 方法返回请求行中的参数部分。getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。getRemoteAddr方法返回发出请求的客户机的IP...
2019-02-22 17:33:41
438
原创 Java Web学习——ServletConfig对象和ServletContext对象
一.ServletContext可以获取web.xml文件配置的参数信息(局部的)二.ServletContext对象1.ServletContext既然代表着当前web站点,那么所有Servlet都共享着一ServletContext对象,所以Servlet之间可以通过ServletContext实现通讯。2.ServletConfig获取的是配置的是单个Servlet的参数信息,S...
2019-02-21 20:02:03
204
原创 Java Web学习———HttpServletResponse
Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象、和代表响应的response对象.一.response.getOutputStream()向浏览器输出(二进制)1.print()方法接受字符串,Tomcat会将内容使用IOS 8859-1编码对其进行转换。(中文会报错)2.write()方法接受二进制,一般使用getBytes()将其转化。...
2019-02-20 16:07:26
221
原创 Java Web学习——Servlet生命周期和Tomcat的标准目录结构
一.artifact打包会将我们写的Servlet变为Tomcat的标准目录结构二.Servlet的生命周期1.加载Servlet。当Tomcat第一次访问Servlet的时候,Tomcat会负责创建ervlet的实例2.初始化。当Servlet被实例化后,Tomcat会调用init()方法初始化这个对象3.处理服务。当浏览器访问Servlet的时候,Servlet 会调用service...
2019-02-19 19:21:37
184
原创 Java Web学习——IDEA上的第一个Servlet程序
一.在IDEA中导入Tomcat的库File-&amp;amp;gt;Project Structure-&amp;amp;gt;Libraries-&amp;amp;gt;Tomcat的lib目录下-&amp;amp;gt;servlet-api二.在src中写创建代码在这里插入图片描述来启动,以为后台就是这样的。后面需要用到nginx+uwsgi来部署的时候才发现原来还有web服务器与web应用服务器一说。WSGIWSGI(Python Web Server Gateway Interface)协议,他规定了一种web服务器与web应用程序/框架之间的推荐标准接口,以确保Web应用程序在不同Web服务器之间具有可移植...
2018-12-24 11:41:34
1168
1
原创 关于python中的repr(),str()函数,以及特殊方法__rep__,__str__
可以看出repr()相较于str()函数多了双引号,可以简单理解为repr显示出来的内容是给机器看的,str显示出来的内容是给用户看的。对于一般情况:不管我们是输入对象还是print(对象),返回的都是对象的内存地址对于方法__str__:如果我们在终端中输入对象,会返回对象的内存地址,使用print则会自动调用方法__str__对于方法__repr__:如果我们在终端中输入对...
2018-12-21 14:24:03
1273
原创 python的.pyc文件
python是解释型语言,在程序执行时会吧源代码编译成字节码形式,并把字节码保存为拓展名为pyc的文件,字节码被发送到PVM上执行。下一次执行程序时如果没有修改过源代码的话,就会直接加载.pyc文件并且跳过编译步骤,这样就能加速启动.通常情况下只有把文件当做模块来使用时才会产生pyc文件.没有生成pyc文件时,会在内存中产生字节码并在程序结束时丢弃。python会自动检查源文件和字节码文件...
2018-11-09 19:22:17
191
空空如也
c++的memset()函数初始化为-1比0更快
2019-03-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人