JAVA 方法 技术教程文章

在linux lubuntu上调用任何java.nio方法时,面对没有这样的方法异常【代码】

我面临一个让我发疯的问题,我在windows机器上使用netbeans创建了一个java应用程序,它包含一个带有main方法的普通java类,并按如下方式导入java.nio.package testubonto; import java.nio.*; import java.nio.BufferOverflowException; public class Main {public static void main(String[] args) {try{java.nio.file.Path path = java.nio.file.Paths.get(args[0]);System.out.println(path.toString());}catch(Exception ex){Syst...

什么时候“这个”分配了内存位置,在什么时候可以在java中调用一个方法【代码】

class A {B b;public A(){b = new B(this);//initialization of class A variables}public void meth1(){} }class B {A a;public B(A a){this.a = a;} }我知道这个引用不应该以这种方式传递,但是如果这样做会发生什么 其他一些类调用类A构造函数.什么时候“this”引用实际分配了内存?如果在调用super()之前调用A的构造函数,它会被分配内存吗? 假设B类是一个线程,并且因为B具有A的引用,所以如果A的构造函数甚至没有返回,如果“thi...

在Java中获得剩余堆栈内存的最佳方法是什么?

在递归调用期间,获取或计算Java中可用剩余堆栈内存的最佳方法是什么? (我正在尝试对一个深度递归调用进行分段,以尽可能多地使用堆栈(为了提高速度性能)但不会遇到堆栈溢出. 我已经完成了一个“堆”版本,它带来了速度性能开销,这就是我正在进行优化的原因.)解决方法:你需要什么?好奇而已?什么是度量单位 – 字节或递归调用的数量? 您始终可以进行无限递归调用,捕获StackOverflowError并计算堆栈帧

是否有统一的方法来检测Linux上安装的Java?

有没有办法在各种不同的Linux发行版上检测已安装的java?使用Windows,您可以使用JAVA_HOME或注册表,但Linux?如果这是JDK,JRE,32位还是64位,是否可以检测到它? REPHRASE:如果我在Linux上需要64位JDK,我如何以编程方式检查它是否存在并通知用户他有其他一些Java?解决方法:你总是可以使用java -version. 这适用于所有平台,但请确保Java包含在系统PATH变量中.

java – Windows上的JDialog扩展到Windows任务栏.任何解决方法?【代码】

This question讨论了JFrame扩展到Windows任务栏的已知错误. An answer链接到错误报告(具有各种重复项)并提供解决方法.我发现问题也适用于JDialogs. JFrame解决方法不适用.是否有类似的解决方法使JDialogs在Windows上表现自己? 示例代码:import javax.swing.*;public class Demo extends JDialog {public Demo() {setSize(250,12500);setVisible(true);}public static void main(String[] args) {new Demo();} }编辑:看起来这不会...

使用Java访问Windows COM方法的任何方法?

我有一个应用程序,它利用JNA从C中的硬件抽象库调用函数.其中一个受支持的硬件设备需要初始化Windows COM子系统(通过CoInitialize或CoInitializeEx). 有没有人知道任何可以做到这一点的Java库?我知道我可以包装一些Windows功能,但如果我有一些准备和测试,那会更好.我发现了一个名为JACOB但据说文档不好,自上次更新以来已经很长时间了. 谢谢!解决方法:我们使用Com4J(用于Excel等外部进程)和SWT COM API(用于嵌入式GUI组件).有时,我...

java – 同步方法的weakValue映射引用中的内存泄漏【代码】

我正在创建一个同时执行方法的接口,同时抽象出同步细节(在需要时交换分布式实现).我已经创建了一个单独的jvm实现,它允许将字符串作为互斥体存储在映射中,以确保使用一个引用,即使传入不同引用的字符串.并发似乎工作正常,但我是惊讶地看到测试表明参考计数从未减少.我假设使用WeakValues()就足以防止内存泄漏,但似乎并非如此.任何人都可以指出可能导致这种泄漏的原因吗?public class SynchronousMethodExecutorSynchronizedImpl im...

JAVA内存分析——栈、堆、方法区 程序执行变化过程【代码】【图】

面向对象的内存分析参考:http://www.sxt.cn/Java_jQuery_in_action/object-oriented.html ;尚学堂JAVA300集-064内存分析详解_栈_堆_方法区_栈帧_程序执行的内存变化过程 栈:用于存放局部变量;一个线程一个栈,线程间不能共享;在一个线程中每个方法都有一个栈帧; 堆:用于存放创建好的对象,一个对象在堆中开辟一块;JVM只有一个堆,所有线程共享; 方法区(也是堆):用于存储类信息、静态变量、字符串常量;只有一个方法区...

linux运行java项目时,指定当前空闲内存的80%运行项目,shell脚本获取当前80%空闲内存值的方法【代码】

MEMORY=`free | sed -n 2p | awk {print $4}`USE_MEMORY_RATE=0.8 ## 判断USE_MEMORY_RATE 值是否在0~1之间 PRODUCT=`bc << EOF scale = 0 a1 = $USE_MEMORY_RATE b1 = 10 a1 * b1 EOF` index=`expr index "${PRODUCT}" .` if [[ $index -ne 0 ]];thenPRODUCT=${PRODUCT:0:${index}-1} fiif [[ $PRODUCT -ge 10 ]];thenecho "USE_MEMORY_RATE should be greater than 0 and lower than 1,you set is ${USE_MEMORY_RATE}"exit fii...

java内存泄漏的分析方法【图】

这几天,一直在为Java的“内存泄露”问题纠结。Java应用程序占用的内存在不断的、有规律的上涨,最终超过了监控阈值。福尔摩 斯不得不出手了! 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄...

java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法

面向过程和面向对象 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。 面向对象具有三大特征:封装性、继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能。所以面向对象优势更明显。 属性(field,或者叫成员变量) 属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。面向对象的内存分析 J...