JAVA 概念笔试题

1.分别写出分支结构,循环结构的语法格式。
循环结构:
while 循环
[html]  view plain  copy
  1. (init_statement);  
  2. while (test_expression) {  
  3.     body_statement;  
  4.     [iteration_statement];  
  5. }  
do…while 循环
[html]  view plain  copy
  1. (init_statement);  
  2. do {  
  3.     body_statement;  
  4.     [iteration_statement];  
  5. } while (test_expression)  
for 循环
[html]  view plain  copy
  1. for ([init_statement]; test_expression; [iteration_statement]) {  
  2.     body_statement;  
  3. }  
foreach循环
[html]  view plain  copy
  1. for (type element : array | collections) {  
  2.     element...  
  3. }  
分支结构:
if 语句
[html]  view plain  copy
  1. if (logic expression) {  
  2.     statement;  
  3. }  
  4. if (logic expression) {  
  5.     statement;  
  6. } else {  
  7.     statement;  
  8. }  
  9. if (logic expression) {  
  10.     statement;  
  11. } else if (logic expression) {  
  12.     statement;  
  13. } else {  
  14.     statement;  
  15. }  
switch 语句
[html]  view plain  copy
  1. switch (expression) {  
  2.     case condition1 : {  
  3.         statement;  
  4.         break;  
  5.     }  
  6.     case condition2 : {  
  7.         statement;  
  8.         break;  
  9.     }  
  10.     default : {  
  11.         statement;  
  12.         break;  
  13.     } }  
2.写出控制循环结构的相关语句,并描述其作用。
break:在循环体中,使用 break 关键字跳出整个循环。
[html]  view plain  copy
  1. int flag = 6;  
  2. int sum = 0;  
  3. for (int i = 1; i <= 10; i++) {  
  4.     sum = sum + i;  
  5.     if (i == flag) {  
  6.         break;  
  7.     }  
  8. }  
  9. System.out.println(sum); // 21  
continue:在循环体中,使用 continue 跳出本次循环,循环还会继续执行。
[html]  view plain  copy
  1. int sum = 0;  
  2. for (int i = 1; i <= 10; i++) {  
  3.     if (i % 2 == 0) {  
  4.         continue;  
  5.     }  
  6.     sum = sum + i;  
  7. }  
  8. System.out.println(sum); // 25  
3.数组初始化的方式有哪些?请举例说明。
静态初始化:int[] arrs = {1, 2, 3, 4};
动态初始化:type[] arrayName = new type[length];
4.请写出一个合理的数组,并使用foreach循环遍历到控制台。
[html]  view plain  copy
  1. int[] arrs3={1,3,7,9,11};  
  2. for(int a : arrs3) {  
  3.     System.out.println(a);  
  4. }  

5.类和对象是什么关系?类的命名规范是什么?

类: 是一种自定义的数据类型。
对象:通过类创建的变量,或者叫类的实体。
类是一群对象的特征母版,对象是类的具体实例。
类是一群对象的抽象。

类的首字母大写

6.类的成员有哪些?用于成员变量的修饰符有哪些?

类:成员变量、方法、构造器

成员变量的修饰符:publicprotectedprivatestaticfinal,但publicprotectedprivate只允许出现一个,也可以省略

7.成员变量包含哪些?命名规范分别是什么?

扫描二维码关注公众号,回复: 1023771 查看本文章

[修饰符] 数据类型 成员变量名 [= 默认值]
修饰符:可以省略,也可以是 public protected private static final,其中 public protected private 只允许出现一个。
数据类型:可以是任意的数据类型(包含基本数据类型、类类型、数组类型)

默认值:如果是类类型的,没有定义默认值,那么成员变量的值为 null,如果是基本数据,没有定义默认值,那么成员变量的值是有意义的,比如 int 就是 0boolean 就是 false

8.请书写定义方法的语法?

[修饰符] 方法的返回值数据类型 方法名(形参列表) {
    方法体语句;

}

9.请书写构造器定义的语法?构造器的用途是什么?

[修饰符] 类名([参数列表]) {}

1、创建对象 2、初始化成员变量 3、添加逻辑判断          构造器的最大用处 就是创建对象

10,请简述你对this的理解?写出使用this调用成员变量、方法、构造器的代码示例?

Java 中使用 this 关键字,指向调用该方法的对象。根据 this 所在的位置,大致分为两种:

出现在构造器中:引用该构造器正在初始化的对象;

普通方法中:调用该方法的对象。

this 用于在类定义中,获取当前对象的属性,或者调用当前对象的方法。

Student1(String name, int age, String code) {
    this.name = name;
    this.age = age;
    this.code = code;   //成员变量
}

String intro() {        //方法
    return "我叫" + this.name + ",我的学号是" + this.code + ",我今年" + this.age + "岁了。";
}

void listen() {         //构造器
    System.out.println("自我介绍:" + this.intro() + "  " + this.name + "在上课。");
    return;

}

11. 方法的参数其实传递的是什么类型的数据?如果传入的是基本数据类型,是否原数据的值会发生改变?如果传入的是引用数据类型呢?阐述原因。

参数的传递都是「值传递」,在调用方法的时候,参数会被创造出一个副本,原本的值是不会改变的。
基本数据类型,也称为「值类型」

如果方法中传入的是基本数据类型,那么原变量的值是不会发生改变的,如果方法中传入的是引用数据类型(即类类型),那么传入方法中,如果对对象的相关属性进行了修改,那么原对象的相关属性也会发生改变

12,方法签名是什么意思?

方法签名:只包含了方法名和参数列表

13,什么是方法重载?

重载:发生在本类中,方法名一样,但是参数列表不一样,重载可以是构造器的重载,也可以是方法的重载。

14,请分别说明类变量、实例变量、局部变量的生命周期?

类变量:是指类的static变量,用类名可以直接访问。生命周期从加载类开始,到销毁类结束

实例变量:作用域受限定符限定,Private的只能在本类中使用,protected子类可用,public任何地方都可用。生命周期从对象创建开始到对象销毁结束

局部变量:是指定义在方法或代码块中的变量,局部变量必须初始化,在方法或代码块内有效,之外则无效,方法执行开始入栈时创建,执行完毕出栈时销毁

15 请书写标准的对下面两个成员变量的封装方法:
a) private String name;
b) private String stuCode;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getStuCode() {

return stuCode;

}

public void setStuCode(String stuCode) {

this.stuCode = stuCode;

}

16, 在企业开发中包名定义的规范是什么?

第一层是企业的域名的反写

例如:com.ntqingniao

第二层是企业项目的名称

例如:com.ntqingniao.j96com.ntqingniao.crm

第三层是企业项目模块的名称

例如:com.ntqingniao.j96.oopcom.ntqingniao.crm.base

 

17,我们一般在什么情况下使用import语句?如果不使用import语句,有什么其他的解决方案?

使用 import 关键字将本类要使用的其他包中的类进行引入。

但是,import 不是必须的,我们可以使用类全名的方式进行类的使用。一般不建议,太麻烦。

使用 ALT+/ 可以单个引入,也可以使用 CTRL+SHIFT+O 全部引入。

如果要引入某个包下面的所有类,可以使用通配符 * ,例如,引入com.ntqingniao.j96.oop.*,但是要注意通配符只能出现在最后。对于 java.lang 包中的类,系统会自动的默认引入,不需要使用 import

18,访问控制修饰符有哪些?分别的控制范围是什么?

private:只能在当前类中被访问,一般用于对成员变量的修饰;

default:没有定义修饰符就是 default

protected:可以在子类和本包中被访问,外部包不能被访问,在有一定业务意义的包中,可以定义类中成员变量是protected

public:一般定义在方法或者一些常量中,用于外部接口的访问。

private

default

protected

public

同一个类

同一个包

子类

全局范围

19对象在创建时的成员变量的默认值分别是什么?

基本数据:数值型的为0,布尔类型的为falsechar类型的为’\u0000’;
引用数据类型null

如果在方法中定义的局部变量:系统是不会对其设置默认值的,必须要显式的通过赋值运算符=给变量赋值。

20请至少写出3个常用的JDK包。

java.lang:包含了 Java 语言的核心类库,如 StringSystemMath等等,使用该包下的类是不需要显式引入;
java.util:包含了大量的工具类,如 Date、集合框架;
java.netJava 网络编程的类和接口包;
java.ioJava 输入输出,如流等方面编程的包;
java.text:格式化方面的类;
java.sql:数据库编程方面的类和接口包;

java.awt:图形用户界面方面的类和接口包。

    附加题:编程实现
55岁天秤座的张老师在给南通青鸟教育Java100班的学员上Java课
(提示:需要定义的类包括:老师类、学员类、课程类等等,要运用封装的概念,要有类变量的定义。最后需要通过方法在控制台打印出上述语句)
 Teacher类

[html]  view plain  copy
  1. package com.dodoke.test02;  
  2. /**  
  3.  * 创建教师类  
  4.  * @author 26966  
  5.  *  
  6.  */  
  7. public class Teacher {  
  8.     //声明教师的姓名,年龄,星座  
  9.     private String name;  
  10.     private int age;  
  11.     private String constellation;  
  12.     //创建构造器  
  13.       
  14.     public Teacher(String name, int age, String constellation) {  
  15.         super();  
  16.         this.name = name;  
  17.         this.age = age;  
  18.         this.constellation = constellation;  
  19.     }  
  20.     public Teacher() {  
  21.         super();  
  22.           
  23.     }  
  24.     //对属性值封装  
  25.     public String getName() {  
  26.         return name;  
  27.     }  
  28.     public void setName(String name) {  
  29.         this.name = name;  
  30.     }  
  31.     public int getAge() {  
  32.         return age;  
  33.     }  
  34.     public void setAge(int age) {  
  35.         this.age = age;  
  36.     }  
  37.     public String getConstellation() {  
  38.         return constellation;  
  39.     }  
  40.     public void setConstellation(String constellation) {  
  41.         this.constellation = constellation;  
  42.     }  
  43. }  
Student类
[html]  view plain  copy
  1. package com.dodoke.test02;  
  2. /**  
  3.  * 学生类,属性包括姓名,班级  
  4.  * @author 26966  
  5.  *  
  6.  */  
  7. public class Student {  
  8.   private String name;  
  9.   private String calss;  
  10. public Student() {  
  11.     super();  
  12. }  
  13. public Student(String name, String calss) {  
  14.     super();  
  15.     this.name = name;  
  16.     this.calss = calss;  
  17. }  
  18. public String getName() {  
  19.     return name;  
  20. }  
  21. public void setName(String name) {  
  22.     this.name = name;  
  23. }  
  24. public String getCalss() {  
  25.     return calss;  
  26. }  
  27. public void setCalss(String calss) {  
  28.     this.calss = calss;  
  29. }    
  30. }  
Course类
[html]  view plain  copy
  1. package com.dodoke.test02;  
  2. /**  
  3.  * 建立课程类,属性为课程名  
  4.  * @author 26966  
  5.  *  
  6.  */  
  7. public class Course {  
  8.   private String name;  
  9.   //建立构造器  
  10. public Course() {  
  11.     super();  
  12. }  
  13. public Course(String name) {  
  14.     super();  
  15.     this.name = name;  
  16. }  
  17.   //封装  
  18. public String getName() {  
  19.     return name;  
  20. }  
  21. public void setName(String name) {  
  22.     this.name = name;  
  23. }  
  24. }  
School类
[html]  view plain  copy
  1. package com.dodoke.test02;  
  2. /**  
  3.  * 建立shool类,设定类变量name  
  4.  * @author 26966  
  5.  *  
  6.  */  
  7. public class School {  
  8.    static String name="南通青鸟教育";  
  9. //构造器  
  10. public School() {  
  11.     super();  
  12. }     
  13. }  

Main类

[html]  view plain  copy
  1. package com.dodoke.test02;  
  2. /**  
  3.  * 建立主类,来输出结果  
  4.  * @author 26966  
  5.  *  
  6.  */  
  7. public class Main {  
  8.     public static void main(String[] args) {  
  9.     //new 出老师,学员,课程对象  
  10.     Teacher zh=new Teacher("张老师",55,"天秤座");  
  11.     Student stu=new Student("学员","Java100班");  
  12.     Course cou=new Course("Java课");  
  13.     //输出结果  
  14.    System.out.println(zh.getAge()+"岁"+zh.getConstellation()+"的"  
  15. +zh.getName()+"在给"+School.name+stu.getCalss()+"的"+stu.getName()+"上"+cou.getName());  
  16.             }     
  17.     }  

 

 

 

 

猜你喜欢

转载自blog.csdn.net/yxbillie/article/details/80374704