标签归档:java

MAC系统查看自己的java位置

打开命令行工具 which java /usr/bin/java ls -l /usr/bin/java lrwxr-xr-x 1 root wheel 74 12 3 2015 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java ls -l /System/Library/Frameworks/JavaVM.framework/Versions drwxr-xr-x 8 root wheel 272 12 3 2015 A lrwxr-xr-x 1 root wheel 1 12 3 2015 Current -> … 继续阅读

发表在 JAVA, MAC | 标签为 , , | 留下评论

php-java-bridge php调用java的方法

此方法不需要重启apache,不需要修改php.ini文件 php-java-bridge 项目地址 http://php-java-bridge.sourceforge.net/pjb/download.php 下载 php-java-bridge.jar java.inc 双击php-java-bridge.jar 浏览器输入 http://localhost:8080/ 能看到下载目录的东西(因为我直接在我的下载目录双击了这个jar) 估计放在哪里双击,就会显示这个目录的所有文件。 网页底部显示这些信息 写一个php http://localhost/javaer/java.php 把下载的java.inc 放在javaer目录下 java.php 内容 <?php //define("JAVA_DEBUG", true); //调试设置 //define("JAVA_HOSTS", "127.0.0.1:8080"); //设置javabridge监听端口,如果开启javabridge.jar设置的端口不是8080,可通过此语句更改 require_once("Java.inc"); //php调用java的接口,路径问题需要注意 $here=realpath(dirname($_SERVER["SCRIPT_FILENAME"])); //java_set_library_path($here.PATH_SEPARATOR .’.'); //java_set_library_path($here.PATH_SEPARATOR .’.'); //设置java开发包(class或jar文件)路径,多个路径就用PATH_SEPARATOR分隔,保证跨平的支持。 //java_set_file_encoding("GBK"); //设置JAVA编码。没试过其它的编码,也没深入研究如何能用其它的编码。   echo ‘<meta charset="UTF-8">’; … 继续阅读

发表在 JAVA, PHP | 标签为 , , | 留下评论

对一个未知类型的数据,进行java判断

常见的情况是,我们从mysql读出了数据,批量灌入到HASHMAP里,于是这个HashMap里,有int类型,有string,有boolean,有long 下面的函数,直接判断出数据的类型,方便我们做转义的操作。之前写过一个instanceof 的专门用法。 public static <T> String getType(T t){ if(t instanceof String){ return "string"; }else if(t instanceof Integer){ return "int"; }else if(t instanceof Boolean){ return "boolean"; }else{ return " do not know"; } } 一般这么用。 Iterator iter = h.entrySet().iterator(); while … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

Centos yum方式安装java

以前在Linux 下安装 java 都是使用下载的java包,进行安装,然后配置 今天突然脑洞一下,发现应该可以用yum 结果一下子 yum install java 给我默认安装了一个java1.5,我的心顿时碎了 查看CentOS自带JDK是否已安装。 ◆输入:yum list installed |grep java。 若有自带安装的JDK,如何卸载CentOS系统自带Java环境? ◆卸载JDK相关文件输入:yum -y remove java-1.7.0-openjdk*。 ◆卸载tzdata-java输入:yum -y remove tzdata-java.noarch。 当结果显示为Complete!即卸载完毕。 注:“*”表示卸载掉java 1.7.0的所有openjdk相关文件。 检查CentOS系统网络连接是否正常。 ◆使用yum方式安装需要连接网络下载Java相应安装文件,故此需要使用ping命令测试网络;如:ping 百度URL即可。 查看yum库中的Java安装包。 ◆输入:yum -y list java* 。 使用yum安装Java环境。 ◆输入:yum -y … 继续阅读

发表在 JAVA, Linux | 标签为 , , , | 3 条评论

Java多线程中的wait与notify,notifyall

在Java多线程编程中,wait()的作用的是让当前线程进入阻塞状态,notify()是让当前线程唤醒继续执行。虽然是对线程状态的控制,但它们其实都是Object中的方法,这是因为wait与notify所起的作用与线程间的互斥锁有关。 在执行wait()和notify()之前,必须要先获得互斥锁,即一定要和synchronized一起使用。wait()的含义是让出获得的互斥锁,并让自己进入阻塞状态。在notify()的时候也已经获得了互斥锁,所做的事情就是唤醒当前线程继续执行。 假如synchronized的锁对象是obj的话,wait和notify正确的使用方法是obj.wait()和obj.notify()。如果使用this作为锁,则可以直接写成wait()和notify()。如果前后使用的锁对象不一致,会发生IllegalMonitorStateException。 当有多个线程共同使用一个互斥锁时,notify()会随机选取一个执行过wait()的线程唤醒,其余会继续保持阻塞状态。如果想唤醒所有阻塞的进程,就使用到了notifyAll()。 有点晕了么,把代码拿去执行可以好好体会下,一会看完代码,看结论 package com.javaer.thread;   public class Twait {   public static void main(String[] args) { TestThread testThread1 = new TestThread(); TestThread testThread2 = new TestThread(); TestThread testThread3 = new TestThread();   testThread1.start(); testThread2.start(); testThread3.start();   System.out.println("主线程休眠5秒"); … 继续阅读

发表在 WEB前端 | 标签为 , , , , , , , | 留下评论

java多线程,让步yield

先看个yield让步的例子 package com.javaer.thread;   public class YThread implements Runnable { private Object obj = new Object();   /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub YThread s = new YThread(); Thread t1 … 继续阅读

发表在 JAVA | 标签为 , , , | 2 条评论

java多线程,同步与锁

线程的同步和锁的问题,我们先来看个例子, 下面的例子我们希望两个线程对m变量进行削减 package com.javaer.thread; /** * 测试线程同步锁的问题 * @author yuexiaosheng * */ public class SysTest implements Runnable { int m = 10;   public static void main(String[] args) { SysTest s1= new SysTest(); Thread t1 = new Thread(s1, "Thread-t1"); Thread … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

java采用Runnable 实现多线线程

使用实现Runnalbe可以做出一个多线程,之前我们采用继承Thread的办法也做出一个。 public class TestMitiThread1 implements Runnable {   public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + " 线程运行开始!"); TestMitiThread1 test = new TestMitiThread1(); Thread thread1 = new Thread(test); Thread thread2 = new Thread(test); thread1.start(); thread2.start(); System.out.println(Thread.currentThread().getName() + " 线程运行结束!"); } … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

java多线程要注意的地方

多线程都会遇到主线程控制的事情,一个宿主分发了多个任务出去,如何知道各自的完成情况。就需要子线程给宿主报告。 1、明确目的,为什么要使用多线程?如果是由于单线程读写或者网络访问(例如HTTP访问互联网)的瓶颈,可以考虑使用线程池。如果是对不同的资源(例如SOCKET连接)进行管理,可以考虑多个线程。 2、线程使用中要注意,如何控制线程的调度和阻塞,例如利用事件的触发来控制线程的调度和阻塞,也有用消息来控制的。 3、线程中如果用到公共资源,一定要考虑公共资源的线程安全性。一般用LOCK锁机制来控制线程安全性。一定要保证不要有死锁机制。 4、合理使用sleep,何时Sleep,Sleep的大小要根据具体项目,做出合理安排。一般原则非阻塞状态下每个循环都要有SLeep,这样保证减少线程对CPU的抢夺。每次线程的就绪和激活都会占用一定得资源,如果线程体如果有多个循环,多处使用SLEEP将导致性能的下降。 5、线程的终止一般要使线程体在完成一件工作的情况下终止,一般不要直接使用抛出线程异常的方式终止线程。 6、线程的优先级一定根据程序的需要要有个整体的规划。

发表在 JAVA | 标签为 , | 留下评论

Java字符串的10大热点问题盘点

下面我为大家总结了10条Java开发者经常会提的关于Java字符串的问题,如果你也是Java初学者,仔细看看吧: 1、如何比较字符串,应该用”==”还是equals()? 总的来说,”==”是用来比较字符串的引用地址,而equals()才是比较字符串的值。两个值相同的字符串用”==”比较结果有可能是false,而用equals()则一定为true。除非两个字符串是同一个new出来的对象,不然比较字符串值是否相同应该要用equals()。 2、对那些安全敏感的信息,为什么用char[]存储要优于String? String是不可变的,这就意味着它一旦被创建,就将永久驻留在内存中,直到垃圾回收器将其回收为止。然而用数组存储方式,你可以明确地改变数组中的元素,因此用数组方式,安全信息将有可能不存在系统内存的任何地方。 3、能否用字符串来声明switch语句? JAVA 7及以后的版本是支持的。在JDK 7中,允许你使用字符串做switch语句的比较条件。jdk 6以前的版本,不能这样使用: // java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; } 4、如何将字符串转换成数字int类型? int n = Integer.parseInt("10"); 很简单,但却会经常用到,也很容易被忽略。 5、如何用空格字符来分割字符串? 我们可以很方便地用正则表达式来分割字符串,”\s”表示空格字符,比如” “, “\t”, … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论