![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 73
tanwenfang
学无止境。
展开
-
在Windows server 2003上使用jdk
由于项目需求,需要在系统为Windows server 2003的计算机上开发Java项目,由于之前这台计算机安装都是非Java环境,现在要开发Java项目,就要搭建Java的开发环境,这里记录一下jdk的安装过程。由于这个系统已经很老了,还是32位的,不支持使用jdk的.exe文件安装,有大神推荐使用免安装的jdk,于是网上下载了jdk的免安装文件,32位的,我将其放到了百度网盘,提取码是pa...原创 2019-02-15 15:57:28 · 6584 阅读 · 3 评论 -
Java多线程与并发-8.8 yield函数和interrupt函数
1,yield函数当调用Thread.yield函数时,会给线程调度器一个当前线程愿意让出CPU使用的暗示,但是线程调度器可能会忽略这个暗示。yield()不会对当前线程的锁造成影响。2,interrupt函数如何中断线程?1,已经被抛弃的方法:stop(),suspend(),resume();2,目前使用的方法:(1)调用interrupt(),通知线程应该中断了<1&g...原创 2019-06-16 16:10:26 · 359 阅读 · 0 评论 -
Java多线程与并发-8.7 notify和notifyall的区别
先了解一下两个概念:(1)锁池:假设线程A已经拥有了某个对象(不是类)的锁,而其他线程B,C想要调用这个对象的某个synchronized方法(或者块),由于B,C线程在进入对象的synchronized方法(或者块)之前必须先获得该对象锁的拥有权,而恰巧该对象的锁目前正被线程A所占用,此时B,C线程会被阻塞,进入一个地方去等待锁的释放,这个地方就是该对象的锁池。(2)等待池:假设线程A调用了...原创 2019-06-16 14:59:56 · 542 阅读 · 0 评论 -
Java多线程与并发-8.6 sleep和wait的区别
sleep和wait的区别1,基本的区别sleep是Thread类的方法,wait是Object类中定义的方法sleep方法可以在任何地方调用wait方法只能在synchronized方法或synchronized块中使用2,最主要的本质区别Thread.sleep只会让出CPU,不会导致锁行为的改变Object.wait不仅让出CPU,还会释放已经占有的同步资源锁下面来验...原创 2019-06-16 14:37:47 · 310 阅读 · 0 评论 -
Java多线程与并发-8.5 线程的状态
从源码可知,线程的状态有以下6种:从源码可知,线程的状态有以下6种:(1)新建(New):创建后尚未启动的线程的状态(2)运行(Runnable):包含Running和Ready。处于此状态的线程,有可能正在执行,也有可能在等待cpu为它分配执行时间,处于Running状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权,处于Ready状态的线程,在获得cpu时间后,就变为...原创 2019-06-16 14:29:25 · 161 阅读 · 0 评论 -
Java多线程与并发-8.4 如何实现处理线程的返回值
我们知道给run方法传参有三种方式,即:构造函数传参成员变量传参回调函数参数如何实现处理线程的返回值?关于线程的返回值,就是一个痛点了。因为我们有的程序的执行,是依赖于子任务的返回值进行的,当子任务交由子线程去执行的时候,是需要获取到它们的返回值的,这个时候怎么办?即实现子任务的返回值的方法是什么?实现的方式主要有3种:(1)主线程等待法,即我们可以让主线程循环等待,直到目标子线...原创 2019-06-16 14:21:50 · 1178 阅读 · 0 评论 -
Java多线程与并发-8.3 Thread和Runnable的关系
Thread是一个类,而Runnable是一个接口。Thread实现了Runnable接口。Runnable里面只有一个抽象的run()方法,也就是说Rnnable这个接口并没有具备多线程的特性,它是依赖Thread里面的start()方法去创建一个子线程,再在这个子线程里面再去调用Thread实现好了的run()方法,去执行相应的业务逻辑,才能让Thread这个类具备多线程的特性。下面对Thr...原创 2019-06-16 14:03:08 · 258 阅读 · 0 评论 -
Java多线程与并发-8.2 线程的start和run的区别
Thread中的start和run方法的区别就是:调用start()方法会创建一个新的子线程并启动run()方法只是Thread的一个普通方法调用下面我们来验证一下。如下代码,先使用run()方法:package thread;public class ThreadTest { private static void attack() { System.out.println...原创 2019-06-16 11:49:34 · 265 阅读 · 0 评论 -
Java多线程与并发-8.1 进程和线程的区别
下面的笔记会跟一些Java源码。我们选择jdk8进行跟踪。我们要是跟源码,最好选择jdk8,jdk11,因为它们是Oracle长期支持的版本。进程和线程的由来,请看下面的图:进程是资源分配的最小单位,线程是CPU调度的最小单位所有与进程相关的资源,都被记录在PCB(进程控制块)中进程是抢占处理机的调度单位;线程属于某个进程,共享其资源线程只由堆栈寄存器,程序计数器和TCP(线程控制...原创 2019-06-16 11:23:24 · 147 阅读 · 0 评论 -
windows系统下运行bat脚本实现后台运行及停止jar文件
先建两个bat文件,分别命名为start.bat,stop.bat,然后把这两个文件和要执行的jar包放到同一个目录下。start.bat脚本内容为:@echo offstart javaw -jar xxx.jarexitstop.bat脚本内容为:@echo offtaskkill -f -t -im javaw.exeexit运行start.bat就可以执行哪个jar文...原创 2019-05-28 11:38:41 · 18940 阅读 · 9 评论 -
使用servlet提供接口
对于Java开发人员来说,应该已经习惯了应用spring框架中的注解方式来提供接口,本人就是这种。不过最近由于工作需要,要开发纯Java项目,不使用任何框架,那就只能使用servlet来达到提供接口的目的了,顺便复习一下。Servlet是 Java用来创建动态web应用的服务组件,可以被部署在Java web服务器中,例如:Tomcat,JBoss,WebLogic等主流服务器中。Servlet...原创 2019-05-26 11:16:31 · 6649 阅读 · 5 评论 -
Linux系统下安装tomcat
已有环境:CentOS 6.10 64bitJDK1.8下面开始准备安装tomcat.1,官网下载tomcat安装包。2,使用xshell将该安装包上传到服务器的/home目录下。3,解压该安装包。4,进入tomcat的安装目录的conf目录下,修改server.xml配置文件中的端口号。5,在安装目录的bin目录下启动tomcat。查看日志,看是否启动成功:6...原创 2019-05-21 18:03:59 · 172 阅读 · 0 评论 -
对jdk版本位数,系统版本位数和eclipse版本位数之间关系的一点总结
1,jdk,系统,eclipse都有32位和64位之分,理论上32位的jdk,eclipse可以安装在32位及64位的系统上,而64位的jdk,eclipse则只能安装在64位的系统上。不过还是尽量统一位数吧。2,jdk有安装版和免安装版,一般系统比较新的,可以使用安装版,如win7/win8/win10等等,而一些老旧系统,如window server2003这种,则可以使用免安装版(因为我之...原创 2019-05-25 10:31:45 · 684 阅读 · 0 评论 -
使用URLDecoder 和 URLEncoder解码及编码中文及特殊字符
URLDecoder和URLEncoder用于完成普通字符串 和 application/x-www-form-urlencoded MIME 字符串之间的相互转换。用法很简单,直接看代码吧。package pingmujietu;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import ...原创 2019-04-18 15:09:35 · 1045 阅读 · 0 评论 -
Java实现屏幕截图
话不多说,看代码:package pingmujietu;import java.awt.Dimension;import java.awt.Rectangle;import java.awt.Robot;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.io.File;import j...原创 2019-04-08 12:23:36 · 1359 阅读 · 0 评论 -
MyBatis逆向工程生成po,dao,mapper(带中文注释)
话不多说,按步骤一步一步来写代码吧,项目可以通过文末链接下载。(1)新建一个springboot工程;(2)pom文件添加如下依赖: &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-start原创 2019-02-19 16:08:26 · 2245 阅读 · 0 评论 -
Java将excel转为html
1,maven项目加入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <...原创 2019-07-02 18:02:01 · 9806 阅读 · 5 评论