导航:首页 > 编程语言 > java中有没有

java中有没有

发布时间:2022-05-14 17:10:17

‘壹’ java有没有goto

goto是Java中的保留字,在目前版本的Java中没有使用。

‘贰’ Java 中有没有直接可以判断两个类是否相同的方法

java没有直接判断两个雷是否相同,但提供了如下方法:

1、如果说两个对象的判断可以使用 equals,或者 ==。
2、如果判断对象是否某个类 可以使用 instanceof ,isInstance
3、如果两个类的比较 可以使用 isAssignableFrom,但只能得到是否是自身或者子类的结果,不能完

如下代码:

importjava.util.ArrayList;

publicclassceshi{

publicstaticvoidmain(String[]args){

Strings1=newString("javaisland");//测试两个对象是否相同
System.out.println(s1instanceofString);//true

Strings2=newString("javaisland");//测试是否对象属于某个类
System.out.println(String.class.isInstance(s2));//true

System.out.println(ArrayList.class.isAssignableFrom(Object.class));//false
System.out.println(Object.class.isAssignableFrom(ArrayList.class));//true
}
}

运行结果如下:

‘叁’ java中有没有goto语句

java确实提供了goto语句,并且它是保留的关键字,但是JVM并没有给它提供任何的实现。或许是java并没打算放开使用这种机制。

不过,我则会采用特殊手段实现类似goto的功用:

importstaticjava.lang.System.out;

classTest{
publicstaticvoidmain(String[]args)throwsException{
intstep=1;
intsum=0;

loop:
for(;true;){
if(step<=100){
sum+=step;
step++;
continueloop;
}elsebreak;
}

out.println("sum="+sum);
}
}

‘肆’ JAVA中有没有goto关键字

goto是关键字,不过在java中没有用到,只是保留关键字,在定义变量或类命之类的时候不要用这个

‘伍’ JAVA中有没有类似C语言中sizeof那样的功能

Java没有提供任何类似于C语言的sizeof()的操作器。但是java中可以模拟C语言中对sizeof的实现。

实现的想法是这样的:java.lang.Runtime类中有一些简单的能涉及到内存管理的函数:

使用这些简单的内存访问,可以得到内存的一些情况,通过建立一个大的某个类的数组,来查看内存用了多少,进而可以求得类的大小。


程序代码示例:

public class Sizeof {

public static void main(String[] args) throws Exception {

// Warm up all classes/methods we will use

runGC();

usedMemory();

// Array to keep strong references to allocated objects

final int count = 100000;

Object[] objects = new Object[count];

long heap1 = 0;

// Allocate count+1 objects, discard the first one

for (int i = -1; i < count; ++i) {

Object object = null;

/* Instantiate your data here and assign it to object*/

//object = new Object ();

//object = new Integer (i);

//object = new Long (i);

//object = new String ();

//object = new Byte( (byte) 0);

//object = new Float( 0.2f);

//object = new Double( 0);

//object = new HelloWorld();

if (i >= 0)

objects[i] = object;

else {

object = null; // Discard the warm up object

runGC();

heap1 = usedMemory(); // Take a before heap snapshot

}

}

runGC();

long heap2 = usedMemory(); // Take an after heap snapshot:

final int size = (int) Math.round(((double) (heap2 - heap1)) / count);

System.out.println("'before' heap: " + heap1

+ ", 'after' heap: " + heap2);

System.out

.println("heap delta: " + (heap2 - heap1) + ", {"

+ objects[0].getClass() + "} size = " + size

+ " bytes");

for (int i = 0; i < count; ++i)

objects[i] = null;

objects = null;

}

private static void runGC() throws Exception {

// It helps to call Runtime.gc()

// using several method calls:

for (int r = 0; r < 4; ++r)

_runGC();

}

private static void _runGC() throws Exception {

long usedMem1 = usedMemory(), usedMem2 = Long.MAX_VALUE;

for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++i) {

s_runtime.runFinalization();

s_runtime.gc();

Thread.yield();

usedMem2 = usedMem1;

usedMem1 = usedMemory();

}

}

private static long usedMemory() {

return s_runtime.totalMemory() - s_runtime.freeMemory();

}

private static final Runtime s_runtime = Runtime.getRuntime();

} // End of class

需要注意的是上面的一句:Object[] objects = new Object[count];

只是分配了数组空间,没有分配对象的空间。数组中只有引用而已。

结论:下代码测试基本对象时,得出的结果象下面:
Object类对象 : 8字节
Integer类对象 : 16字节
Long类对象 : 16字节
Byte类对象 : 16字节

此示例说明了java中基本类型封装对象所占内存的大小。
1.简单的Object对象要占用8个字节的内存空间,因为每个实例都至少必须包含一些最基本操作,比如:wait()/notify(),equals(), hashCode()等。
2.使用Integer对象占用了16个字节,而int占用4个字节,说了封装了之后内存消耗大了4倍。
3.Long看起来比Integer对象应该使用更多空间,结果Long所占的空间也是16个字节。
那么就正好说明了JVM的对于基本类型封装对象的内存分配的规则是如下:
a、Object所占内存(8个字节)+最大基本类型(long)所占内存(8个字节) = 16字节。
b、JVM强制使用8个字节作为边界。
c、所以所有基本类型封装对象所占内存的大小都是16字节。但是还是有区别,比如:Integer对象虽然占用了16个字节的内存,但是只是利用了Object所占内存(8个字节)+int所占内存(4个字节) = 12字节。还有4个字节根本没有被使用。

‘陆’ java中有没有全局变量

能把你的代码贴出来吗?
java里没有全局变量,但是有成员变量,不过它跟c++里的全局变量很类似

‘柒’ java中到底有没有指针

学过c/c++,然后学Java的人往往心中有此纠结,java中到底有没有指针?
如果一定要在是或否里选择一个,OK,java中没有指针。
那么,java中的引用(reference)和c/c++中的指针(如无特别说明,后文指针均指c/c++中的指针)究竟有着什么样纠葛不清的关系呢?

在开始之前先说一下c/c++的引用,它跟java的引用完全不是一个东西,c/c++的引用是同一块内存的不同名字。而java的引用是指向一个对象,引用本身也占用了内存。
首先,列举一下能对指针进行的一些常见操作:
1、指向一个对象,如 Person *p = new Person….;int *iv = new int….
2、对指针所指的对象进行操作:P->getAge(); (*p).getAge();
3、获取存储在指针中的地址值。
4、将指针指向另外一个对象:Person *p1 = new Person…; p = p1; 但,不可以*p = p1这样来赋值。
5、删除new的空间,delete p1;
6、其它诸多操作
这么多已经足够了,接下来看看java引用能做什么操作。
a、指向一个对象,如Person p = new Person…
b、调用对象的方法,p.getAge();
c、指向另外一个对象,Person p1 = new Person…; p = p1;
OK,就这么多了。
对于a和1,他们的功能是类似的,但java引用无法指向一个基本变量。。
对于b,java引用和指针就不同了,在这点上,Java reference更像是解引用(dereference)了的指针;或者说java中的.操作符某种程度上等价于指针的->操作符,如果是这样种解释的话,我们无法再对java的reference解引用了。
对c和4,是类同的。
除此,我们无法获取java引用存的地址,我们不能delete,还有很多……
综上,窃以为java的引用可以看成是一个功能受限的指针(或者说被阉割的指针)。另一方面,功能如此受限,它还能叫指针吗?了解了指针和java引用的区别与联系,还需要纠结“java中有没有指针”这个问题吗!

‘捌’ Java中有没有Http类

问题的关键是你要的Http类做什么?
如果你不管Http类职责是什么,只是要一个名字就叫Http的类,Java标准类库是没有的。
如果你想要
用Java实现基于
Http协议
的功能,简单的HttpURLConnection类就能够实现。

阅读全文

与java中有没有相关的资料

热点内容
编程思想pdf 浏览:282
加密欧美航线 浏览:48
svn怎么看服务器的地址 浏览:187
骑马与砍杀1命令部队用盾牌 浏览:595
光缆pdf 浏览:350
加密流量实时监测 浏览:628
360压缩和好压哪个好 浏览:61
python判断变量是否为list 浏览:906
云服务器1m带宽表示什么意思 浏览:702
429升冷柜用多大压缩机 浏览:116
决策树算法java实现 浏览:376
androidtv开发焦点控制 浏览:328
论人的成长pdf 浏览:282
python网站源代码 浏览:827
手机文件压缩器怎么安装 浏览:112
androidsdk封装 浏览:266
微信加密不知道怎么取消 浏览:705
分析算法设计程序编写 浏览:843
linux启动dhcp失败 浏览:356
芙蓉出水选股公式源码 浏览:763