本文目录一览:
- 1、Java语言的特点
- 2、Java内存遗漏是什么原因?
- 3、1.Java有没有指标? 2.Java如何处理记忆体遗漏?
- 4、java学习中,能看懂代码,但是自己写不出来怎么办
- 5、Java语言中 的符号不存在,不知道是我遗漏了什么?
Java语言的特点
Java 语言主要有以下特点:
1.强类型
Java 语言是一种强类型语言,强类型能约束程序员必须遵守更多的编程规定,也能让编译器检测出程序中尽可
能多的错误。
2.编译和解释
Java 语言是一种高级编程语言,用Java 语言编写的源程序在计算机上运行需经过编译和解释执行两个严格区分
的阶段。Java 语言的编译程序先将Java 源程序翻译成机器无关的字节码(bytecode),不是通常的编译程序将源程
序翻译成计算机的机器代码。运行时,Java 的运行系统和链接需要执行的类,并作必要的优化后,解释执行字节码
程序。
3.自动无用内存回收功能
Java 语言具有自动无用内存回收功能,程序可以按需使用内存,但不需要对无用内存显式地撤销分配。系统有
一个垃圾收集器(garbage collector),自动收集程序不再使用的内存。这样,能避免显式的撤销分配所引起的安全
问题。Java 语言不再含有任何不安全的语言成分。例如,没有指针,数组元素都要检查下标是否越界。
4.面向对象
面向对象是程序员编写大型程序、有效控制程序复杂性的重要手段。Java 语言在面向对象方面,比C++更“纯”,
它的所有数据类型,包括布尔类型、整形、字符型等,都有相应的类,程序可完全基于对象编写。
面向对象语言主要有封装性、继承性和多态性三个特点。封装就是将实现细节隐藏起来,只给出如何使用的信
息。数据及数据上的操作用类封装,对象是类的实例,外界使用对象中的数据及可用的操作受到一定的限制。继承
体现众多的一种层次对象的特性,下一层的类可从上一层的类继承定义,从上一层类派生的类的对象能继承上一层
对象的特性,同时可以改变和扩充一些特性,以适应其自身的特点。多态性的意义主要体现在逻辑上相同的不同层
次上的操作,使用相同的操作名,根据具体对象,能自动选择对应的操作。Java 语言很实用地实现了这三种特性。
5.与平台无关
与平台无关是对程序可移植性最直接最有效的支持。Java 语言的设计者在设计时重点考虑了Java 程序的可移植
性,采用多种机制来保证可移植性,其中最主要的是定义了一种虚拟机(virtual machine),以及虚拟机使用的java
字节码。在任何平台上,Java 源程序被Java 编译器编译成虚拟机能够识别的字节码。这样,只要有Java 虚拟机的
平台,就能解释执行java 字节码程序,从而实现Java 与平台无关。另外,Java 语言还采用基于国际标准的数据类
型,在任何平台上,同上种数据类型是一致的。例如,用int 标识32 位二进制位(bit)整型数据,那么无论在哪一
台计算机上,Java 的int 数据都是32 位整数。相反,C 语言会随着硬软件平台的改变,用int 标识的整数位数也可
能不全相同。
Java 语言提高可移植性的代价是降低程序的执行效率。出于java 语言也是一种解释执行的语言,Java 程序的
执行速度与C 程序的执行速度有较大的差别。不过,为了尽量弥补执行效率低的缺陷,java 的字节码在设计上非常
接近现代计算机的机器码,这有助于提高解释执行的速度。
6.安全性
Java 是在网络环境中使用的编程语言,必须考虑安全性问题,主要有以下两个方面:
设计的安全防范:Java 语言没有指针,避免程序因为指针使用不当,访问不应该访问的内存空间;提供数组元
素上标检测机制,禁止程序越界访问内存;提供内存自动回收机制,避免程序遗漏或重复释放内存。
运行安全检查:为了防止字节码程序可能被非法改动,解释执行前,先对字节码程序作检查,防止网络“黑客”
对字节码程序已作了恶意改动,达到破坏系统的目的。最后,浏览器限制下载的小应用程序不允许访问本地文件,
避免小应用程序破坏本地文件。
7.分布式计算
Java 语言支持客户机/服务器计算模式。Java 程序能利用URL 对象,能访问网络上的对象,如同访问本地的文
件一样,实现数据分布。另外,Java 的客户机/服务器模式也可以把计算从服务器分散到客户机端,实现操作分布。
8.多线程
线程是比进程更小的一种可并发执行的单位,每个进程都有自己独立的内存空间和其他资源,当进程切换时需
要进行数据和资源的保护与恢复。若干协同工作的线程可以共享内存空间和资源,线程切换不需要数据的保护与恢
复。
Java内存遗漏是什么原因?
此人很懒,没有任何问题描述,缺乏对回答者的起码尊敬,并且由此可以推断此人对于工作和事业缺乏责任心。
如果不知道怎样提问,可以看看国外的邮件列表,如果你打算别人花十分钟来帮你解决问题,你至少也要花十分钟把你的问题描述清楚。
问题补充:
看你还有点诚意,就点拔一下吧:
Java中所有的对象都是可达的,不可达的对象均会在未来的某一时刻被回收。所以在Java代码中出现的内存遗漏,就是指系统中反复创建对象,并且存在对该对象的引用,但是该对象又没有被使用。打个比方,在一个Web系统中,如果用户每次登录,系统都记录该用户信息并且存放到ServletContext对象中,但用户注销或退出时,没有将该用户信息从ServletContext中移除,那么这个对象可以引用,但实际上没有使用价值,也不会再被使用,所以这个对象占用的内存就可以理解为“内存泄漏”。
1.Java有没有指标? 2.Java如何处理记忆体遗漏?
1.自然是没有指针的,但存在一个引用的东西。和c++很不同,不需要显示释放内存,因为是垃圾收集器的工作。
2.有垃圾收集器可以回收不再需要的对象,所以绝大部分情况不会又内存泄露问题。当然,如果代码处理不当也会出现无用内存得不到释放的情况。具体回收的算法,不同虚拟机有不同实现。
java学习中,能看懂代码,但是自己写不出来怎么办
写不出来有两种情况 :
一种是有思路,但是你不熟悉该语言的语法结构,所以不会写;
另一种情况是:懂语法结构,但是抛开别人的代码你就没有思路了;
当然也有可能上述两种情况的结合体:既没有思路也不熟悉语法结构。
如果是第一种的话,多看一下基础知识,照着书本联系写代码,这种情况是最好解决的,想深入了解,就看源码。
如果是第二种的话,我觉得就需要积累了,就是在看别人的代码时,要理解别人解决问题的思路,然后多归纳整理,然后也需要手动敲代码来巩固。第二种情况 说实话我也经常发生,,能看懂别人的代码,但是自己写的时候就会有遗漏。我觉这个一个是多积累,一个是多思考。
纯手打,累死我了
Java语言中 的符号不存在,不知道是我遗漏了什么?
你好,报错的原因是Student类中没有对应的可访问的成员变量。
图中定义的这些变量不是类的成员变量,而只是方法中的局部变量。
建议先复习一下变量的作用域,以及访问方式等。
如果有帮助到你,请点击采纳。
我解答的大部分是软件开发新人遇到的问题,如果有兴趣可以关注我。