Tag: 操作系统

当JVM执行Java应用程序时,操作系统的作用是什么? 为什么我们需要操作系统?

我在互联网上做过一些阅读,有人说Java应用程序是由java虚拟机(JVM)执行的。 “执行”这个词让我感到困惑。 据我所知,操作系统可以执行非Java应用程序(即:用C,C ++编写……)。 在较低级别,这意味着OS将二进制程序加载到内存中,然后指示CPU执行内存中的指令。 那么现在有了JVM,会发生什么? 据我所知,操作系统首先会调用JVM(包含运行时环境)。 从那时起,JVM将为应用程序生成一个(或多个)线程。 我想知道操作系统的角色是否会再次发挥作用? 在我看来,JVM已“绕过”操作系统并直接指示CPU执行应用程序。 如果是这样,为什么我们需要操作系统? 进一步说,JVM将使用其JIT将应用程序的字节代码编译为机器代码,然后执行这些机器代码。 由于它已经是机器码,我们是否还需要JVM? 因为操作系统可以指示CPU执行这些机器代码,而不是JVM。 我在这里犯了什么错吗? 我想从这里的人们那里学到更多东西。 如果我错了,请纠正我。 非常感谢!

缓冲区溢出(vs)缓冲区溢出(vs)堆栈溢出

可能重复: 堆栈溢出和缓冲区溢出有什么区别? Buffer Overflow和Buffer Overrun有什么区别? Buffer Overrun和Stack Overflow有什么区别? 请包含代码示例。 我查看了维基百科中的术语,但我无法与C或C ++或Java编程相匹配。

回车符和换行符窗口以及Linux java应用程序

我正在开发一个集成测试应用程序,这是我在测试用例中所做的,我读了一个测试输入文件,它存储在cvs中,写入文件系统中的文件,应用程序轮询目录文件,处理它并创建输出文件,我轮询目录输出文件,如果两个文件内容相等,测试用例是成功的(我正在读取输入文件和输出文件到字符串并比较它们) 。 问题是这个测试用例在Linux系统中运行时失败,原因是存储在cvs中的文件是从包含CRLF作为行终止的Windows系统检入的,而生成的输出文件的行终止是CR,现在当我读取这些文件并逐个字符地比较它们时,它们就会出现不匹配。 谁能帮到这里呢。

如何使用java查找操作系统驱动器?

我们如何在java中编码以找出安装操作系统的驱动器号?

Mac OS上的Java随机减速

我有一个Java程序,用于在多个处理器之间进行一系列科学计算,将其分解为多个部分并在不同的线程中运行每个部分。 这个问题很容易分区,因此线程之间没有争用或通信。 他们访问的唯一常见数据是一些不需要同步访问的共享静态缓存,以及硬盘上的一些数据文件。 线程也在不断写入磁盘,但要分离文件。 我的问题是,有时当我运行程序时,我获得了非常好的速度,有时当我运行完全相同的东西时,它运行得非常慢。 如果我看到它运行缓慢并且ctrl-C并重新启动它,它通常会再次开始快速运行。 它似乎在运行的早期设置为慢速模式或快速模式,并且从不在模式之间切换。 我把它连接到jconsole,它似乎不是一个内存问题。 当我抓住它慢慢地运行时,我已经尝试将探查器连接到它,但探查器将无法连接。 我尝试使用-Xprof运行但是慢速运行和快速运行之间的转储似乎没有太大的不同。 我也试过使用不同的垃圾收集器和内存空间的各个部分的不同的sizings。 我的机器是带有条带RAID分区的mac pro。 无论是缓慢运行还是快速运行,cpu的使用率都不会下降,如果线程在磁盘读取时花费太多时间阻塞,那么你会期望它,所以我不认为这可能是磁盘读取问题。 我的问题是,我的代码会出现什么类型的问题? 或者这可能是操作系统问题? 我无法在Windows机器上复制它,但我没有具有类似RAID设置的Windows机器。

如何找到OS位类型

我想知道操作系统类型,意思是64位操作系统或32位操作系统。 但我得到了32位/ 64位可执行文件的不同响应,它获得了有关操作系统的系统属性 我从系统属性获取详细信息。 我有64位机器和操作系统Windows 8.1 X64 “OS Architecture : ” + System.getProperty(“os.arch”)); “OS Name : ” + System.getProperty(“os.name”)); “OS Version : ” + System.getProperty(“os.version”) “Data Model : ” + System.getProperty(“sun.arch.data.model”)); 运行64位可执行文件时获得以下响应。 操作系统架构 : amd64 操作系统名称 :Windows 8 操作系统版本 :6.2 amd64 数据模型 :64 运行32位可执行文件时获得以下响应。 操作系统架构 : x86 操作系统名称 :Windows 8 操作系统版本 :6.2 x86 数据模型 :32 […]

“空语句”可能(不)抛出哪些Java错误和exception?

可以通过空语句抛出java.lang.Throwable 哪个子类? 用“空话”这句话,我指的是“没有”,“分号”和“半冒号”: // …. A(); B(); C(); try { // nothing } catch (java.lang.Throwable e) { // which Throwable subclass might we see? } D(); E(); F(); try { ; // semi-colon } catch (java.lang.Throwable e) { // which Throwable subclass might we see? } G(); H(); I(); try { ; ; ;; ;;;;; […]

在java中创建硬链接

目前我通过Runtime.exec()使用’ ln ‘命令。 它工作正常。 唯一的问题是,为了做这个fork,我们需要两倍的应用程序堆空间。 我的应用程序是一个64位的应用程序,堆大小约10Gigs,因此它的交换空间耗尽。 我找不到任何可以解决此问题的配置。 我也想不要使用JNI。 我也听说过这个设施很快将在java 7中提供。

在Object.wait()之前调用Object.notify()

如果没有正在等待的线程,使用Object.wait() ,对Object.notify()或Object.notifyAll()任何调用都不起作用。 我有一个场景,如果我在等待集为空时调用Object.notify() ,后续调用Object.wait()不应该让线程等待。 如何实现这一目标? 信号量可能是我能想到的一种解决方案。 有更优雅的解决方案吗?

我的Java代码如何读取OS环境变量?

这可能是一个非常简单的问题,但我找不到答案googleing而且我很匆忙 – 所以我很欣赏快速的代码示例。 我想在OS上使用Java代码阅读的OS上有一个环境变量。 我已经尝试过System.getProperty ,但这似乎只适用于直接为JVM提供的-D变量。 我的Java代码如何读取OS变量?