一、三种控制结构是什么?以及规则?

顺序结构,选择结构,循环结构
规则:

1、顺序:
程序执行的默认方式,自上而下依次执行语句

2、选择:
有些语句执行,有些语句不执行
一种:单条件判断

 if(条件表达式){语句;}

二种:互斥条件判断

if(条件表达式){
语句;
}else{
语句;
}
三种:多条件判断

if(条件表达式){
语句;
}else if (条件表达式){
语句;
}else{
语句;
}
四种:多层条件判断

if(第一层条件){
if(第二层条件){
真正运行逻辑
}}
五种:switch语句

 int x = 4;
switch(x){
case 1: System.out.println("这里是1的执行代码");  break;
case 3:  System.out.println("这里是3的执行代码");  break;
case 4:  System.out.println("这里是4的执行代码");  break;
case 2:  System.out.println("这里是2的执行代码");  break;
default:System.out.println("这里是其他数字的执行代码");  break;
}

3、循环:
有些语句重复执行
一种for循环

for(初始化表达式1;布尔表达式2;步进表达式3){
循环体3
}
二种while循环

初始化表达式1
while(布尔表达式2){
循环体3
步进表达式3
}
三种do while循环

初始化表达式1
do{
循环体3
步进表达式3
}while(布尔表达式2);
二、如果 if 语句后面不写{},if 的控制范围是否只限于第一句?

正确

public static void main(String[] args) {
if(true)
System.out.println(“我执行了”);
}
三、 Math.random()是什么意思?如果想获得1-7之间的随机数,怎么办?

(int)(Math.random()*6)+1, 生成一个1~7之间的随机数。
解释:
Math.random()
生成一个0~1之间的随机小数。
Math.random()*6
生成一个0~6之间的随机小数。
(int)(Math.random()*6)
把生成的06之间的随机小数,强制取整,最终是06之间的随机整数

四、 switch 语句的功能是否完全可以使用 if else if else 多选择结构来代替?如果是,为什么还需要 switch 结构?

可以
switch 一般用来做多值的判断,如果判断条件为区间,则最好使用多重 if 来做,如果是等值情况最好使用 switch 来做

五、switch 中的表达式的结果需要是什么类型?

byte,char,short,int
jdk1.5 加入了枚举
jdk1.7 加入了 String

六、 switch 语句中,一个 case 开始执行后,什么时候结束执行这个 case 的语句?

遇到 break 结束执行这个 case 语句

七、 switch 语句中,default 是否必须写?

不是必须写

八、下面代码有什么错误?
switch (qqq) {
case ‘A’;
case ‘S’;
System.out.println(“输出A”);
break;
default:
System.out.println(“输出S”);
}

case 后的表达式后面应该是":"冒号

九、循环结构模拟了现实世界中的什么逻辑?

循环结构模拟了现实世界中的“重复问题“的逻辑

十、循环结构的四种内部结构是什么?
一种for循环

for(初始化表达式1;布尔表达式2;步进表达式3){
循环体3
}
二种while循环

初始化表达式1
while(布尔表达式2){
循环体3
步进表达式3
}
三种do while循环

初始化表达式1
do{
循环体3
步进表达式3
}while(布尔表达式2);
四种foreach循环

foreach(数组或集合中元素的类型 迭代变量:数组或集合名){
循环体;
}
十一、while 和 dowhile 有什么区别?

无论条件成不成立,do-while 至少执行一次

十二、 什么情况下,会出现死循环?

循环条件始终成立时,则会出现死循环
while(true){
System.out.println(“哎,死循环了”);
}
十三、for 循环相比 while 循环有什么优势?

语法结构比 while 简便,
通常用于解决循环次数固定的问题

十四、下面代码都有什么问题?
do{
System.out.println(b);
b++;
} while (b<0)

b没有初始化

十五、下面代码有错误吗?如果有,指出错误?
for(int i=0;i<=10;i++){
System.out.println(i); //循环体
}
System.out.println("(((((("+i);

System.out.println("(((((("+i);
i 超出了作用域的范围

十六、循环中,break 的作用是?continue 的作用是?

break
用于强行退出循环,不执行循环中剩余的语句
continue
用于跳过本次循环, 不执行 continue 后的语句, 继续下一次循环

十七、语句块能否使用外部的变量?语句块中定义的变量,外部能否使用?

语句块能使用外部的变量, 但是语句块中定义的变量外部不能使用

十八、 方法的定义中,是否必须要有返回值类型?如果确实不需返回值,使用哪个关键字声明?

返回值类型不是必须的
不需要返回值使用关键字 void

//无返回值
public void getTest(){
}
//有返回值
public String getTest(){
return “”;
}
十九、 方法的定义中,return 是否必须?它有什么作用?

不是必须
return 语句终止方法的运行并指定要返回的数据

//指定要返回的数据
public String getTest(){
return “我返回的字符串”;
}
二十、Java 中,参数的传递使用值传递还是引用传递?

值传递

二十一、 方法定义中,形式参数和实际参数有什么区别?用自己的话描述。

方法定义时的参数称为形式参数,需要数据类型
方法调用时的参数称为实际参数,不需要类型,只需要值

二十二、 方法定义时,使用实参还是形参?

方法定义时,使用的是形参

二十三、定义形参时,必须要写变量类型吗?

必须要写变量类型

二十四、 实参类型是否必须和形参类型匹配?

必须匹配

二十五、 什么是方法的重载,有什么作用?

方法重载:
1)在同一个类中
2)方法的名称相同
3)参数列表不同(类型,个数,顺序)
4)与访问修饰符和返回值类型可以相同也可以不同
5)访问修饰符可以相同可以不同
6)与异常无关
作用:
传递不同的参数实现相同的效果

二十六、 递归算法中,递归头和递归体分别指什么?

递归头:
什么时候不调用自己方法,即递归的结束条件
递归体:
什么时候需要调用自己方法,即自己调用自己

二十七、递归算法的优点是什么?缺点是什么?

递归的优点:
将问题逐渐简单化
递归的缺点:
会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度比循环慢的多。

二十八、编程题 根据随机生成的的月份,打出该月份的天数.(不考虑闰年、闰月)

public static void main(String[] args) {int day = 0;int month = (int) (Math.random() * 12) + 1;switch (month) {case 2:day = 28;break;case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;default:day = 30;break;}System.out.println(month + "月,共" + day + "天");
}

二十九、编程题 用 while 和 for 循环分别计算 100 以内奇数和偶数的和,并输出。

//用while循环实现
public static void main(String[] args) {int i = 1;
int number = 0;
while (i<= 100) {number = number + i;
i += 2;
}
System.out.println("1-100之间所有奇数的和是"+number);
}
//用for循环实现
public static void main(String[] args) {int i = 1;
int number = 0;
for (i = 1; i<= 100; i += 2) {number = number + i;
}
System.out.println("1-100之间所有奇数的和是" + number);
}
//用while循环实现
public static void main(String[] args) {int i = 0;
int number = 0;
while (i<= 100) {number = number + i;
i += 2;
}
System.out.println("1-100之间所有偶数的和是"+number);
}
//用for循环实现
public static void main(String[] args) {int i = 0;
int number = 0;
for (i = 1; i<= 100; i += 2) {number = number + i;
}
System.out.println("1-100之间所有偶数的和是" + number);
}

三十、编程题 用 while 和 for 循环输出 1-100 之间能被 5 整除的数,且每行输出 4个

//使用while循环
public static void main(String[] args) {int i = 1;int count = 0;while (i<= 100) {if (i % 5 == 0) {System.out.print(i + "\t");count++;if (count % 4 == 0) {System.out.println();}}i++;}
}
//使用for循环public static void main(String[] args) {int i = 1;int count = 0;for (i = 1; i<= 100; i++) {if (i % 5 == 0) {System.out.print(i + "\t");count++;if (count % 4 == 0) {System.out.println();}}}
}

三十一、编程题 打印出九九乘法表

for (int i = 1; i<= 9; i++) {for (int j = 1; j<= i; j++) {System.out.print(j + "*" + i + "=" + (i * j) + "\t");}System.out.println();}}

01 Java面试之控制类相关推荐

  1. java 面试什么是类_Java 面试题代码类收集

    long temp=(int)3.9; System.out.println(temp); temp%=2; System.out.println(temp); 3 1 View Code Java里 ...

  2. java如何创造一个整数的类_【技术干货】Java 面试宝典:Java 基础部分(1)

    原标题:[技术干货]Java 面试宝典:Java 基础部分(1) Java基础部分: 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的 ...

  3. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(三)

    Java面试宝典之数据结构基础 -- 线性表篇 作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn. ...

  4. java域的控制修饰符可分为_Java中的类和方法的修饰符

    java 中的类和方法的修饰符Java程序在定义类时,除了使用class关键字标识之外,还可以在class之前增加若干类的修饰符来修饰限定所定义的类的特性.类的修饰符分为访问控制符和非访问控制符两大类 ...

  5. java接口版本控制_为什么要在Java中控制类和接口的可见性

    java接口版本控制 维护是软件开发的重要方面之一,并且经验证明,保持较低组件可视性的软件比暴露更多组件的软件更易于维护. 您不会在一开始就意识到它,但是在重新设计应用程序时会严重错过它. 由于保持向 ...

  6. Java面试知识点:Date类、异常

    问题:Java面试知识点:Date类.异常 答案: 1.Date类 代码如下: (1)创建日期: package com.xy;import java.util.Date;/*** @ProjectN ...

  7. Java面试知识点:Object类、Math类、BigDecimal类、自动装箱、拆箱

    问题:Java面试知识点:Object类.BigDecimal类.自动装箱.拆箱 答案: 1.Object类: 代码如下: package com.xy;/*** @ProjectName: day0 ...

  8. 面试干货 | Java 能否自定义一个类叫 java.lang.System?

    本文由读者 apdoer 投稿,apdoer 是一个极具钻研精神的 Java 猿,技术牛X头发茂盛! 博客地址:https://blog.csdn.net/m0_43452671 缘起:一个面试题 最 ...

  9. Java面试基础篇之java基础语法之五:类和对象

    目录 1. 类与对象的初步认知 2. 类和类的实例化 3. 类的成员 3.1 字段/属性/成员变量 3.2 方法 (method) 3.3 static 关键字 3.4 小结 4. 封装 4.1 pr ...

最新文章

  1. ACM数学常用知识整理(持续更新ing)
  2. ubuntu 10.0.4安装小企鹅(Fcitx)输入法
  3. 文本编辑器创建工具栏
  4. 二十、深入Python迭代器和生成器
  5. python做视频抽帧图_python-opencv-视频截取帧图片
  6. Java讲课笔记21:List接口及其实现类
  7. scrapy里的selector,不能有正则提取
  8. 从spring管理的datasource中获取connection
  9. linux 16.04 WIFI,手动配置 WIFI无线网络 (Ubuntu 16.04)
  10. android多文件上传错误,在Android中上传大文件而不会出现内存错误
  11. javaweb框架介绍
  12. 国内的地图服务全面收费了
  13. 超声波测距原理与实现
  14. Django rest framework --- Routers
  15. java算法:逻辑回归和线性回归
  16. Mobile Net 系列【V1—V3】
  17. vmware虚拟机安装win7_vmware虚拟机中安装mac Catalina10.15
  18. jQuery 学习-样式篇(五):jQuery 设置元素的 html 结构或 text 内容
  19. java 8——Stream
  20. BUGKU——秋名山/never give up

热门文章

  1. 一种电子病历系统软件框架思想
  2. 去哪儿网消息队列设计与实现
  3. mac 安装item2 lrzsz
  4. VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】
  5. 为什么回归测试在增量开发中特别重要?
  6. 如何在Linux下使用rsync
  7. node_modules中包不完整的解决方法
  8. 华人世界——客家足迹行
  9. DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)
  10. 百度短视频推荐系统的目标设计