JAVA基础相关面试题–03

流程控制:

  • 顺序流程(main方法 、web容器加载的类开始执行)
  • 分支流程:单分支流程–if语句、多选分支流程–which语句
  • 循环流程:for 、 while 、 do-while、死循环

@for( ; ; ){ } 和 while( true ){ }这两个死循环哪个执行效率更高一些总结调查、经验)
for( ; ; ) 死循环里面的两个 ; ; 语句代表空语句,编译器一般会优化掉他们,直接进入循环体。
while ( true ) 死循环里的true 被看成表达式,每次循环一次都要判断表达式是否为真,相对来说 for循环更高效一点。
另一点,while循环中的表达式的循环变量 i 是需要在循环之外中定义的,他的作用域跟while作用域一样 (在main方法中),当while循环执行完成后,变量 i 所占内存不会被释放。
for循环中,变量 i 所占用的栈内存会随着for循环的结束而销毁。

@break 和 continue 关键字的区别么是位置标签break 和 continue 和位置标签搭配可以达到goto的效果,不推荐使用 )
break和continue都是循环的中断关键字。break 中断其所在的循环体。直接跳出循环、continue中断循环体中当前本次循环中的一次循环,直接跳入到下一次的循环。换句话说就是,continue值跳出了一次迭代,而break跳出了整个循环。
java中的goto是保留关键字,不推荐使用

方法(函数)
@ 形参和实参/strong>
形参:方法定义时给定的参数列表。目的是用来接收调用函数时传递的参数。
形参变量只有在被调用时才分配内存单元,调用结束即刻释放锁分配的内存单元。
实参:方法调用时,主方法传递给子方法的参数。具有确定的值。
形参和实参的功能是做数据传送,发生函数调用时,主调函数把实参的值传送给被调函数的形参,从而实现主调函数向被调函数的数据传送。
函数调用时发生的数据传送是单向的。只能把实参的值传送给形参。
形参和实参要一一对应(个数、类型和顺序要对应)

@ void类型的返回方法是否可以使用return关键字/strong>
函数用void声明代表不需要返回值,但是,有时候需要在函数内部强行终止函数继续运行下面的语句,即终止运行方法,这时就需要用到 return语句。格式:return ;

@java 中实参和形参的参数值的传递方式java传值的方式ava是如何传值的br> 按值传参:八种基本类型+String类型 改变的是形参的值,不会影响实参。实参传递给形参是值的拷贝。
按引用(地址)传参:实参传递给形参的是实参的地址引用,形参值的改变会影响实参。除了八种基本类型和String类型之外的都是引用类型。
Java参数,不管是原始类型还是引用类型,传递的都是副本。
如果参数类型是原始类型,那么传递过来的就是这个参数的副本,改变副本的值不会改变原始的值。
如果参数类型是引用类型那么传过来的是这个引用参数的副本,副本存放的是参数的地址。
如果函数中没有改变副本的地址,而是通过地址改变改变了地址指向的值,那么函数内的改变会影响原始参数。
如果改变了副本的地址,如a=… 或 a = new … ,则代表将a指向新地址,原始数据不会改变。
java中指针的概念被替换掉了,取而代之的是在栈或堆空间里开辟空间存放值,然后把这个值指向栈中的某个对象,这个指向就是引用了。引用代替指针。

JAVA基础相关面试题--03
String类
以 结束 底层也是一个字符数组
字符串特性:固定长度,默认值为null 参考jdk的API
Stringbuilder是变长的默认长度16个字节,可以频繁的进行字符串的链接,存放在堆中。
StringBuffer 属于线程安全类。
java中数组的声明方式

@ String 类在内存中的存储方式/strong>
java把内存分为两种,一种是栈内存,一种是堆内存。
在函数中定义的基本类型变量和对象的引用变量都是在函数的栈内存中分配;
堆内存用来存放由new 创建的对象和数组以及对象的实例变量。
String是一个特殊的包装类,可以通过两种方式创建,String s = new String(“abc”); Stirng s = “abc”;

@String str1 = new Sring( ’ 小明 ’ ) ; 该行diamante执行之后在内存中创建了几个对象/strong>
单独执行此行,在内存中有两个。现在常量池中创建一个“小明”,再在堆内存中new一个。
字符串的内存存储模型
变量引用:变量名(地址名)– 会放在栈中
内存空间:
字符串常量池 — 存放在栈中 会过滤重复的 字符串常量都放在字符串常量池中。
堆 — 每次进行内存分配,其内容可以重复,new , + 运算产生的字符串都是放在堆中
JAVA基础相关面试题--03 JAVA基础相关面试题--03
Integer类的valueOf方法取值范围在 [-128 , 127] 。即在这个范围内取值相同的数表示同一地址,
Double 类的valueOf方法会采用与Integer类的valueOf方法不同的实现。在整个范围内的整型数值的隔阂是有限的,而浮点数不是。、

工具类:
包装类:八种基本类型纳入OO体系。包装类主要针对八种基本类型。八种基本类型的包装类,对象性包装类、数值型包装类
object类:根类、祖宗类。HashCode,toString,equals
Sting类:String类是对象类型,但是方法调用时按值传参。

@finally和return的用法(编程题)【有坑】/strong>
Finally语句在执行return语句执行之后,return返回之前执行
finally语句块中return语句会覆盖try语句块中的return
如果finally语句块中没有return语句覆盖返回值,那么原来的返回值可能因为finally里的修改可能发生改变,也可能不发生改变。
Try语句块里的return语句在异常的情况下不会被执行,而最终的返回结果看具体情况。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91528 人正在系统学习中

来源:蹦豆蹦

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月22日
下一篇 2019年7月22日

相关推荐