java中知识,Java中常用知识的整理(一)

1:对java中的面向对象的理解?

Java是一门面向对象的语言,我们把这世间的一切都看成是一个个的对象,而在这些对象中,把具有相同或者相似的性质或功能的个体抽象出来看成是一类。而这些类只是通过简单的接口跟外界发生关系,具体操作和行为只有通过对象来实现。对象中包含有静态的属性和动态的行为。

程序是对象的集合,它们通过消息来告知彼此所要做的,对象跟对象之间也是如此。

每个对象都有其类型,具有相同类型的所有对象可以接收同样的消息。

2:java中对“一处编译,到处运行”的理解?

这是因为Java不受操作系统平台的约束,Java中的类编译后为一个class文件,而class是运行在JVM(Java Virtual Machine:Java虚拟机)上的,并不是直接在操作系统上运行的。因此,基本上可以做到一处编译,到处运行的效果。

3:path和classpath的理解?

Path是用来配置应用程序文件exe的目录,如java中的bin目录;

Classpath一般情况下是不用配置classpath的(jdk5及后续版本),但是如果我们想在任何情况下都能找到class文件,那么就可以通过set classpath=你class文件的存储路径

4:对象和对象的引用?

Java中一切都被视为对象,但是操纵的标识符实际是对象的一个“引用”(reference),而非对象本身。

如:

String s ; 其中s是一个引用而非对象。

如:

String s = new String(“lts”);

其中new创建了一个对象, 然后将此对象指向引用s;

String s = “lts”;

如果是String的话可以直接用带有双引号的文本初始化,其中lts也是一个对象,这用到了Java语言的一个特性。

5:关于对象的存储问题?

1)寄存器。这是最快的存储区,因为他位于不同于其他存储区的地方——处理器内部。但是寄存器的数量有限,所以寄存器根据需求进行分配。因此,

你不能直接控制,同时也不能再程序中感觉到寄存器存在的任何迹象。对此,我寄存器不予任何考虑,但是要知道有这东西存在即可。

2)堆栈。位于通用RAM(随机访问存储器)中,通过堆栈指针可以从处理器获得直接支持。堆栈是一种有效的存储方法,仅此于寄存器。

由于Java系统必须知道存储在堆栈内所有项的确切的生命周期,以便上下移动堆栈指针。这一约束也限制了程序的灵活性,所以虽然某些Java数据存储于堆栈中——尤其是对象的引用,但是Java的对象并不存储于其中。基本数据类型的变量直接存储的是”值”,并且存放于堆栈中。

3)堆。一种通用的内存池(位于RAM区),用于存放所有的Java对象。好处:编译器不需要知道存储的数据在堆里的存活的时间。不好:在分配存储和清除时需要更多的时间。

4)常量存储。常量值通常直接存放在程序代码内部。有时候可以将常量存放在ROM(只读存储器)中。

5)非RAM存储。数据完全存活于程序之外,不受程序的任何控制,在程序没有运行也可以存在。如流对象和持久化对象。

6:基本数据类型?

基本类型

大小(字节/位)

最小值

最大值

包装器类型

boolean

-

-

-

Boolean

byte

1/8 bits

-128

127

Byte

char

2/16 bits

Unicode 0

Unicode 216-1

Character

short

2/16 bits

-215

215-1

Short

int

4/32 bits

-231

231-1

Integer

long

8/64 bits

-263

263-1

Long

float

4/32 bits

IEE754

IEE754

Float

double

8/64 bits

IEE754

IEE754

Double

void

-

-

-

Void

7:对象的作用域?

当使用new创建一个对象,它(对象)可以存活于作用域之外。但是引用却在作用域终点就结束了。

那么如何才能避免过多的对象而造成的内存泄露的问题呢,也就是说靠什么才能防止对象填满内存空间呢。

这就需要Java中的垃圾回收器了,它是用来监视由new创建的所有对象,并辨别哪些不会被引用的对象。

8:this和static 关键字?

this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用,this跟其他对象的引用具有相同的用法。只在必要处才使用this。

public class Leaf

{

int i;

Leaf

increment(){

i++;

return this;

}

void print(){

System.out.println("i = "+i);

}

public static void main(String[] args){

Leaf leaf = new Leaf();

leaf.increment().increment().increment().print();

}

}

This关键字对于将当前对象传递给其他方法也有用;为了将自身传递给外部方法,就必须使用this关键字。

在构造器中调用构造器,置于第一行,只能调用一个构造器;

当参数的名称和数据成员的名称相同时,可以使用this来指定数据成员。

9:static关键字的用法?

不能在static方法里使用this关键字;

不能在static方法中调用非static方法,反过来是可以的,这是因为static方法是不属于某个对象的,而非static方法是属于具体的某个对象,static方法在类加载时就初始化了,而非static方法必须通过创建对象,然后通过对象调用。

但是也并非不能完全去调用非static方法,如果你传递一个对象的引用到静态方法里,然后通过这个引用就可以去访问非静态的成员和非静态的方法了。

static修饰的成员变量也叫类变量或全局变量,在类被加载时static修饰的成员变量被初始化,与类关联,只要类存在,static变量就存在。一个static变量单独划分一块存储空间,不与具体的对象绑定在一起,该存储空间被类的各个对象所共享。也就是说当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例对象共用同一个static变量。static修饰的成员变量能在创建任何实例对象之前被访问,而不必引用任何对象,也就是说不管创建多少对象,static修饰的变量只占有一块内存。

10:&和&&的区别?

&做两种解释,一种是按位与,另一种是且;

按位与:转成二进制,然后做运算,都是1的数值位仍为1,其余都为0,最后在转成十进制。

逻辑且:做逻辑判断,判断条件中的所有条件都要判断,不论前面已经判断好了的条件是返回true还是false;

&&逻辑判断且,跟&最大区别是,只要判断条件中有一个为false,其余条件就不在判断了。它也叫“短路”与。

11:移位操作符

左移<<=, 变大; 右移>>=, 变小

有>>>=符号,

没有<<<=符号

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值