怎么给JVM加启动参数?
有时候程序会碰到java.lang.OutOfMemoryError,这个主要是JVM启动参数没有配好引起的,打开eclipse的eclipse.ini会看到如下参数:
-vmargs-Xms128M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=128M-vmargs:用来说明后面的就是JVM的参数了-Xms:JVM初始分配的堆内存-Xmx:JVM最大允许分配的堆内存,按需分配-XX:PermSize:JVM初始分配的非堆内存-XX:MaxPermSize:JVM最大允许分配的非堆内存,按需分配
java中多线程常见的几个参数?
java中多线程常见的几个参数:
sleep:在指定的毫秒数内让当前正在执行的线程休眠(暂停执行).
此操作受到系统计时器和调度程序精度和准确性的影响。
该线程不丢失任何监视器的所属权。
调用sleep的时候锁并没有被释放。
休眠
Java SE5引入了更加显示的sleep()作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。
wait:调用wait使线程挂起,直到线程得到了notify或notifyAll消息,线程才会进入就绪状态。
使你可以等待某个条件发生变化,而改变这个条件超出了当前方法的控制能力。
线程的执行被挂起,对象上的锁被释放。意味着另一个任务可以获得这个锁。
因此在该对象中的其他synchronized方法可以在wait期间被调用。
yield:相当于:我的工作已经做的差不多了,可以让给别的线程使用CPU了。
当调用yield时,你也是在建议具有相同优先级的其他线程可以运行。
对于任何重要的控制或在调整应用时,都不能依赖于yield。
yield并不意味着退出和暂停,只是,告诉线程调度如果有人需要,可以先拿去,我过会再执行,没人需要,我继续执行
调用yield的时候锁并没有被释放。
interrupt:中断线程。
Thread类包含interrupt()方法,因此你可以中止被阻塞的任务。
这个方法将设置线程的中断状态。
如果一个线程已经被阻塞,或者试图执行一个阻塞操作,那么设置这个线程的中断状态将抛出InterruptedException。
当抛出该异常或者该任何调用Thread.interrupted()时,中断状态将复位。
你在Executor上调用shutdownNow(),那么它将发送一个interrupt()调用给他启动的所有线程。
安装JAVA时提示,命令参数行无效。是怎么回事?
写了一年多的代码,今天再回头看cmd小窗口的时候配置环境变量。把java_home设置到用户变量中去。再系统变量中引用,结果引用不到。%java_home%根本不起作用。直接进入到jdk中编译javac 。。。程序执行成功。但是java 路径\文件的时候就运行不了。此时出现的问题有1.直接在进入cmd中无法调用java命令2.在class路径下运行不了文件(运行时不要带.class,直接用文件名称就好,类名称跟java文件名称不一致的时候采用类名称来运行文件。)3.在jdk目录先运行不了class文件(这个是命令问题以下会有回答)
整个对自己的人生怀疑了,进过一天的奋斗(觉得自己笨的要命,基础还是很重要的)1.将java_home配置到系统变量中。此时解决引用不到%%的问题。2.直接在当前路径下运行class文件(不是在class文件的路径下)应该加上-calsspath,写法 java -classpath 文件所在路径\文件名称(此时可在jdk目录下直接运行class文件)3.配置完成以后,即解决了%%引用问题以后。直接在class文件目录下运行即可。

