java
冰凌其
这个作者很懒,什么都没留下…
展开
-
获取 java文件的路径
1、获取当前项目的路径System.getProperty("user.dir")我的项目是parse,结果为: 2、获取java编译后的.class文件的根目录System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));System.out.println(T...原创 2019-02-23 20:33:50 · 228 阅读 · 0 评论 -
死锁
一. 什么是死锁? 如果一个进程集合里面的每个进程都在等待这个集合中的其他一个进程(包括自身)才能继续往下执行,若无外力他们将无法推进,这种情况就是死锁,处于死锁状态的进程称为死锁进程二. 死锁产生的原因?1.因竞争资源发生死锁 现象:系统中供多个进程共享的资源的数目不足以满足全部进程的需要时,就会引起对诸资源的竞争而发生死锁现象(1)可剥夺资源和不可剥夺资源:可剥夺资源是...转载 2018-08-17 17:18:57 · 152 阅读 · 0 评论 -
常见的4种线程池(保证你能看懂并理解)
0.前言转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52415337使用线程池可以给我们带来很多好处,首先通过线程池中线程的重用,减少创建和销毁线程的性能开销。其次,能控制线程池中的并发数,否则会因为大量的线程争夺CPU资源造成阻塞。最后,线程池能够对线程进行管理,比如使用ScheduledThreadPool来设置延迟N...转载 2018-08-17 16:50:57 · 2237 阅读 · 1 评论 -
触发器CRON表达式
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: (1) Seconds Minutes Hours DayofMonth Month DayofWeek Year (2)Seconds Minutes Hours DayofMonth Month DayofWeek 一、结构 corn从左到右(用空格...原创 2018-08-13 17:45:34 · 1492 阅读 · 0 评论 -
用sql的start with 和connect by prior 递归构造父子节点树
1、简单介绍SQL的start with 和connect by prior语句select * //用视图中选择要查的东西from Table //从哪个表中查start with id = 1 //以哪个ID为开始,即跟节点IDconnect by prior id = parent_id //链接通过前一个ID和现在的父ID相等,定义子节...原创 2018-08-03 13:58:32 · 1466 阅读 · 2 评论 -
读取xx.properties文件里面的属性
对properties文件读取里面的属性1、首先通过当前线程的上下文类加载去将properties文件的路径资源转化为InputStreamInputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("dqms.properties");2、然后通过Proper...原创 2018-08-10 16:42:29 · 1083 阅读 · 0 评论 -
localhost is already in use
解决办法如下:首先:在cmd下,输入 netstat -ano|findstr 8005 (什么端口号被占用就输入什么端口号),回车再输入 taskkill /pid 3664 /f 回车 这里的3664对应第一行结果的的3664现在已经终止了被占用的8005端口!...转载 2018-07-27 10:10:41 · 488 阅读 · 0 评论 -
简单理解:编译器编译优化---常量传播和常量折叠
(1) 常量传播 故名思议,在编译优化时,将能够计算出结果的变量直接替换为常量。 如: void main() { int a = 1; printf("%d",a); } 编译器在进行编译的时候,将a直接由1代替。 优化后如下: void main(){ printf("%d",1);}(2)...转载 2018-07-20 14:37:52 · 3283 阅读 · 0 评论 -
常量折叠------对理解编译期很重要
常量折叠是Java在编译期做的一个优化,简单的来说,在编译期就把一些表达式计算好,不需要在运行时进行计算。 其中Java语言规范15.28规定了Java的常量表达式可以表示原始类型或者字符串;它们不但可以由纯粹的字面量构成,还可以包含能在编译时确定结果的运算,包括+、-、~、!、*、/、%、<<、>>、>>>、<、>、<=、>=...转载 2018-07-20 14:13:39 · 792 阅读 · 0 评论 -
编译时与运行时概念与实例详解
基础概念编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,.另外还有啥链接器.汇编器.为了了便于理解我们可以统称为编译器) 那编译时就是简单的作一些翻译工作,比如检查老兄你有没有粗心写错啥关键字了啊.有啥词法分析,语法分析之类的过程...转载 2018-07-20 13:57:30 · 456 阅读 · 0 评论 -
编译时类型和运行时类型
Java中的许多对象(一般都是具有父子类关系的父类对象)在运行时都会出现两种类型:编译时类型和运行时类型,例如:Person person = new Student();这行代码将会生成一个person变量。该变量的编译时类型是Person,运行时类型是Student。 说明一下编译时类型和运行时类型: Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型...转载 2018-07-20 13:46:12 · 829 阅读 · 0 评论 -
Context
Context在Java中的出现是如此频繁,但其中文翻译“上下文”又是如此诡异拗口,因此导致很多人不是很了解Context的具体含义是指什么,所以很有必要来深究一下这词的含义。先来举几个JAVA中用到Context的例子 (1)JNDI的一个类javax.naming.InitialContext,它读取JNDI的一些配置信息,并内含对象和其在JNDI中的注册名称的映射信息。请看下面的代码...转载 2018-07-20 09:25:20 · 4004 阅读 · 0 评论 -
数据库事务ACID及隔离级别
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一...转载 2018-08-17 17:35:54 · 196 阅读 · 0 评论 -
表设计三大范式
第一范式(1NF)无重复的列第二范式(2NF)属性完全依赖于主键第三范式(3NF)属性不依赖于其它非主属性第一范式:确保每列的原子性.如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.如果...转载 2018-08-17 17:41:55 · 2745 阅读 · 0 评论 -
HashMap分析之红黑树树化过程
概述HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文主要分析一下HashMap中红黑树树化的过程。jdk1.8 HashMap为什么当链表长度大于等于8时才转成红黑树?因为红黑树的平均查找长度是log...转载 2018-08-20 14:38:46 · 1775 阅读 · 1 评论 -
用cmd 编辑.java 成.class 和 将.class打包为jar
一、编译1、有文件目录是这样:E:\JLex\Main.java2、Windows键+R键,打开cmd3、转换到 E:\JLex 文件夹, 英文模式下,先变盘操作:"e:",在转盘下的文件夹操作:"cd JLex"4、用javac Main.java 进行编译,没有报错说明编译成功,如果你是win10 系统会出现javac不是内部命令,看这里:https://www...原创 2019-01-07 20:20:21 · 2353 阅读 · 2 评论 -
获取项目中所用到的jar的路径,并获取项目所有jar包里面的所有class文件
一定要用URLClassLoader,其他ClassLoader不会有getURLs(),同时一定要加括号强制转化import java.net.URL;import java.net.URLClassLoader;public class Test { public static void main(String args[]) { ClassLoader...原创 2018-12-20 17:19:52 · 944 阅读 · 0 评论 -
Java遍历包中所有类包括jar包(完整转载)
第一部分转自 :http://blog.csdn.net/wangpeng047/article/details/8124390第二部分转自:http://blog.csdn.net/wangpeng047/article/details/8202353第三部分转自:http://blog.csdn.net/wangpeng047/article/details/8202353第一部分...转载 2018-12-20 14:54:30 · 4593 阅读 · 1 评论 -
使用IntelliJ IDEA 配置Maven
1. 下载Maven 官方地址:http://maven.apache.org/download.cgi(1)解压,将有bin的上一层文件夹复制到,自己建的maven文件夹下,(2)然后在同一个文件夹下(maven),新建一个本地仓库文件夹LovalWareHouse2.配置本地仓库路径 打开后搜索<localRepository>,就会发现下面的是被注释了...转载 2018-12-19 16:44:41 · 226 阅读 · 0 评论 -
maven 最基本配置pom.xml配置
创建的test项目,一个基本项目的pom.xml文件,通常至少有三个部分这个是pom.xml的头<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...转载 2018-12-19 14:14:47 · 4487 阅读 · 0 评论 -
annotation与框架的那些秘密
在大家使用spring MVC或Hibernate 3.0以上的版本时,可能会注意到annotation带来的方便性,不过这往往让人觉得annotation真的很强大,而这算是一种接近错误的理解吧,annotation其实本身是属于一种文档注解的方式,帮助我们在编译时、运行时、文档生成时使用,部分annotation其实基本和注释差不多,这里其实是要说下annotation的原理,以及各种功能在它...转载 2018-09-22 20:37:02 · 349 阅读 · 0 评论 -
jdk动态代理和cglib动态代理
2、CountImpl.java package net.battier.dao.impl; import net.battier.dao.Count; /** * 委托类(包含业务逻辑) * * @author Administrator * */ public class CountImpl implements Count { ...转载 2018-09-22 19:59:15 · 1374 阅读 · 0 评论 -
框架,JavaBeans与内省(Introspector)和反射
1.Java框架(frame)/*通俗例子: 我做房子(框架)卖给用户住,由用户自己安装门窗和空调(用户自定义类/用户自定义其它信息) 用户需要使用我的房子(框架),把符合框架中结构的门窗插入进我提供的框架中.框架与工具类区别: 框架调用用户提供的类 工具类被用户的类调用示例: 利用反射运行指定的某个类中的main方法, 通过arg[0...转载 2018-09-22 18:44:14 · 1111 阅读 · 0 评论 -
String 和 document 的相互转换总结
获取xml中某一节点内容: public static String getValueByTagName(Document doc, String tagName){ if(doc == null || StringUtil.isNull(tagName)){ return ""; } NodeList pl = doc.getElementsByTagNa...原创 2018-09-22 17:46:52 · 4215 阅读 · 0 评论 -
java 四大内部类
成员内部类 静态内部类 局部内部类 匿名内部类 1、成员内部类定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法,如果被static修饰,就变成静态内部类了。注意事项:成员内部类中不能存在static关键字,即,不能声明静态属性、静态方法、静态代码块等。【非静态内部类也可以定义静态成员但需要同时有final关键词修饰,...原创 2018-09-15 15:37:25 · 201 阅读 · 0 评论 -
获取数据库中的增量数据
a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。 b.时间戳:它是一种基于快照比较的变化数据捕获方式,在源表上...转载 2018-08-20 16:08:53 · 4795 阅读 · 0 评论 -
爬取js动态生成后的数据
1、静态的数据:页面右键选择查看源代码,然后能够在源代码中看到的数据2、动态的数据:源代码中没有的数据3、想要获得动态数据解决方案:获得他的action连接和参数,就可以得到动态数据实例如下:http://www.creditchina.gov.cn/search_all#keyword=&searchtype=0&templateId=1&creditType=8&page=1 中的原创 2017-09-18 15:23:25 · 7306 阅读 · 0 评论 -
Error running Unnamed: Address localhost:8080 is already in use
在dos下,输入 netstat -ano|findstr 8080 //说明:查看占用8080端口的进程显示占用端口的进程taskkill /pid 4708 /f //说明,运行windows自带taskkill命令,将上面显示的进程号,结束掉。原创 2017-09-27 15:18:38 · 3778 阅读 · 0 评论 -
用cmd看java配置环境是否配置完成
在命令提示符中,输入:java -version假如看到有版本提示那么则安装成功原创 2017-09-27 14:13:35 · 4499 阅读 · 0 评论 -
爬取数据时出现网页报错UnsupportedMimeTypeException
解决办法:将Document commentDoc = Jsoup.connect(commentUrl).get();改成Document commentDoc = Jsoup.connect(commentUrl).ignoreContentType(true).get();原创 2017-09-18 21:49:25 · 638 阅读 · 0 评论 -
集合创建、添加、遍历
集合创建Set集合不可以放重复数据,List可以,Map主要存放的是键值对,其中key(主键)不可以重复。 List list = new ArrayList(); Set set = new HashSet(); Map map = new HashMap();1234集合数据的添加 list.add();原创 2017-09-17 15:07:53 · 687 阅读 · 0 评论 -
html状态码代表含义
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。当我们打开一个网页时,如果网页能够返回数据,也就是说影响成功了,一般状态响应码都是200。当然状态响应码,包括很多内容,下面列举了,状态响应码,及其表示的含义,其中加错的是在爬虫中经常遇到的: 100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这原创 2017-09-17 13:35:02 · 743 阅读 · 0 评论 -
将图片和视频存到Tomcat服务器中
//将前台的图片和视频存到服务器中private String saveFile(MultipartFile file) { // 判断文件是否为空 if (!file.isEmpty()) { try { String message="fail"; String sssss=""; //原创 2017-07-27 17:00:29 · 4943 阅读 · 0 评论 -
写hql时,路径中有"\"时,要将它换成"\\",才能在数据库中显示"\"
String url=news.getURL().replaceAll("\\\\","\\\\\\\\");//将路径中所有的"\"转化为"\\"比如原来的URL:D:\apache-tomcat-7.0.73\webapps\ROOT\template\2017072715490900000.jpg那么现在的url:D:\\apache-tomcat-7.0.73\\webapps\\原创 2017-07-27 15:55:54 · 358 阅读 · 0 评论 -
删除tomcat服务器中文件的方法
deleteFile(文件名称,路径名称);public boolean deleteFile(String filename,String filepath){ String path =ServletActionContext.getServletContext().getRealPath(filepath);; String filePath = pat原创 2017-07-27 15:28:05 · 1927 阅读 · 0 评论 -
java.lang.IllegalArgumentException: node to traverse cannot be null!
问题解决:出现这种问题是因为HQL语句出现问题,引起内部查询对象为空,无法处理为空值引起的。解决方法,检查HQL语句(尤其是关键字)。转载 2017-07-27 14:43:07 · 288 阅读 · 0 评论 -
传数据不能为中文,而是乱码
1、前台传参到后台乱码1>修改apache-tomcat-7.0.73\conf\server.xml中 connectionTimeout="20000" redirectPort="8443" />将URIEncoding="utf-8"添加上去2>在后台接受参数时,改格式St原创 2017-08-17 10:18:20 · 245 阅读 · 0 评论 -
爬取出来的json对他进行解析出我们需要的
{"data":{"start":0,"pageSize":10,"totalCount":50,"results":[{"name":"四豹电机科技(上海)有限公司","idCardOrOrgCode":"310118003045876","objectType":2,"goodCount":0,"badCount":0,"dishonestyCount":3,"otherCount":0,"t原创 2017-09-20 17:37:58 · 1307 阅读 · 0 评论 -
idea无法创建class,提示以下错误: Unable to parse template "Class"
在class右边框里添加下面的代码,就好了,原因是没有模版了,不能自动生成#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end#parse("File Header.java")public class ${NAME} {} 还有一种方法:这样可以解决...原创 2017-09-22 15:53:15 · 32300 阅读 · 0 评论 -
request.getParameter() 和request.getAttribute() 区别
getParameter 是用来接受用post个get方法传递过来的参数的.getAttribute 必须先setAttribute.(1)request.getParameter() 取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。(2)request.ge...转载 2018-07-25 10:50:26 · 110 阅读 · 0 评论