`
文章列表
Java本身的Util包里面就有提供处理正则表达式的工具类,当然还有很多第三方正则表达式处理包,反正到目前为止,用java.util.regex就已经能满足我的需求了。示例如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Hello { public static void main(String[] args) { String regEx = "[0-9]{6}";//正则表达式 String html = "12459 ...
生产者消费者是经典的线程之间同步通信问题,生产者线程只有在产品仓库中没有产品的时候才生产产品,当它生成完一个产品以后唤醒消费者线程,消费者线程只有在产品仓库中有产品的时候才能取走产品,然后唤醒生产者线程。 Java可以有好几种方法解决这个问题。首先基础的当然是用Object的wait()、notify()和notifyAll()。 产品仓库类: //产品仓库 public class ProductStore { private boolean flag = false; public boolean hasProduct(){//是否有产品 return flag; ...
BlockingQueue也是java.util.concurrent下的主要用来控制线程同步的工具。 BlockingQueue有四个具体的实现类,根据不同需求,选择不同的实现类1、ArrayBlockingQueue:一个由数组支持的有界阻塞队列,规定大小的BlockingQueue,其构造函数必须带一个int参数来指明其大小.其所含的对象是以FIFO(先入先出)顺序排序的。 2、LinkedBlockingQueue:大小不定的BlockingQueue,若其构造函数带一个规定大小的参数,生成的BlockingQueue有大小限制,若不带大小参数,所生成的BlockingQueue ...

Java调用Python

    博客分类:
  • Java
今天遇到Java调用一个Python脚本的问题,纠结了大半天,遇到各种问题。网上搜索的大部分都是用jython,但是我想要调用的python脚本里有import urllib,这个urllib也不是什么第三方扩展库,在python的安装path下的Lib下就有,在python命令行下肯定是能找到的。但是用jython的话,sys的path里面就太少了。示例代码: import org.python.core.Py; import org.python.core.PySystemState; import org.python.util.PythonInterpreter; publ ...
紧接着Callable和线程池,再次接触java.util.concurrent并发包下的东西。Lock提供比synchronized更灵活的并发控制。Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用synchronized 方法和语句可获得的更广泛的锁定操作,它能以更优雅的方式处理线程同步问题。使用最多的Lock类是ReentrantLock。下面用它来实现上一篇日志中的打印机的例子: import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.R ...
Java线程之间控制占用临界资源(共享资源)用的最多就是synchronized,首先获得资源访问权的线程给资源对象加锁,使用完毕以后再释放对象锁。例如打印机的例子: public class Printer { public void printLetters(char c) { for(int i = 0; i<5; i++) { System.out.print(c); try { Thread.sleep(1000); } catch (InterruptedException e) { e. ...
Timer是一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行,可以看成一个定时器,可以调度TimerTask。TimerTask是一个抽象类,实现了Runnable接口,所以具备了多线程的能力。 测试代 ...
    最近使用苹果笔记本,下载了一个rar解压缩的软件,是命令行程序,得加入到系统的环境变量中。网上搜了一下,需要添加到~/.bash_profile文件中,但是看了一下,我电脑上并没有这个文件,但是有一个~/.profile(这些文件都 ...
全屏截图:Command-Shift-3 使用快捷键后会马上截取当前的全屏   指定区域截图:Command-Shift-4 使用快捷键后会出来一个带有座标的瞄准器,用鼠标的拖放可以选择需要截图的区域.   指定程序窗口截图:Commnad-Shift-4-Space 使用快捷键后会出现一个照相机的图标,这时候你可以选择屏幕上能看到的任何程序窗口,把鼠标移到它上面后窗口会整个被高亮,只要单击一下就会把这个窗口截图。   截取的图片默认保存在了桌面上。  
Runnable和Callable的区别:(1)Runnable是自从java1.1就有了,而Callable是1.5之后才加上去的(2)Callable规定的方法是call(),Runnable规定的方法是run()(3)Callable的任务执行后可返回值,而Runnable的任务是不能返回值(是void)(4)call方法可以抛出异常,r ...
线程池的接口和类位于java.util.concurrent并发包中。真正的线程池接口是ExecutorService。有四种类型的线程池:newSingleThreadExecutor:创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它。此线程池保证所有任务的执行顺序按照任务的提交顺序执行。 newFixedThreadPool:创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的最大大小。线程池的大小一旦达到最大值就会保持不变,如果某个线程因为执行异常而结束,那么线程 ...
服务器新增的系统是Centos6,这个版本默认已经安装了iptables。   iptables的基本操作: service iptables startservice iptables stop service iptables restartservice iptables status  #如果没有启动,将提示没有启动,否则将会显示已经添加的过滤规则 service iptables save    #保存添加的规则,记得每次更改规则以后这样保存一下   清除iptables已有规则 iptables -F   iptables -X  iptables -Z ...
 给实验室网站的服务器安装ftp服务器,安装完以后开始没有使用虚拟用户的方式,客户端连接的时候输入Centos系统的一个用户名和密码,能是能正常上传下载,但是它访问到Centos系统的所有目录,这也太不安全了,当然是不可行的。哎,没办法,最后还是设置成虚拟用户的方式吧,虽然麻烦点。虚拟用户的方式是所有客户端ftp用户都借助一个centos的系统上的用户进行上传下载。安装及配置步骤如下:   (以下所有都是在root用户下操作) 1、准备工作 yum install pam*yum install db4* 首先安装PAM(用于用户认证)和DB4(用于生成虚拟用户的用户名密码的db文 ...
最近遇到服务器网站的目录下的所有文件的编码全是gb2312,直接用cat或者vim打开显示都是乱码,网页显示出来当然也全是乱码,所以要解决怎么把目录下的所有文件(包括子文件夹里的文件)由gb2312转码成utf-8的问题。网上一顿搜,总共用了三种方法,最后终于把问题解决了。   第一种方法是利用vi编辑器,打开需要转码的文件。 :set fileencoding 这样可以查看文件当前的编码格式。 :set fileencoding=utf-8 说这样能把当前的文件转码成utf-8。但是失败了,直接打开还是显示乱码,更别说浏览器浏览的页面了。而且即使能转码成功,站点目录下的文本文件 ...
很多Web服务器都支持设置虚拟主机,允许在一台服务器里放置运行多个Web站点。多个Web站点可以根据IP,域名或者端口区分。这里记录Windows下基于端口的虚拟主机的配置方法。 Apache的安装路径为:D:\Program Files\Apache Software Foundation\Apache2.2 在Apache的安装路径下的conf目录下找到httpd.conf,修改: Listen 80 Listen 8082 #8082 port is added as a virtul host by myself  同时引入在extra目录下的virtualhost的配 ...
Global site tag (gtag.js) - Google Analytics