分别写出分支结构,循环结构的语法格式
if 结构
if (logic expression) {
statement;
}
if (logic expression) {
statement;
} else {
statement;
}
if (logic expression) {
statement;
} else if (logic expression) {
statement;
} else {
statement;
}
switch 结构
switch (expression) {
case condition1 : {
statement;
break;
}
case condition2 : {
statement;
break;
}
default : {
statement;
break;
}
}
while 结构
(init_statement);
while (test_expression) {
body_statement;
[iteration_statement];
}
do-while 结构
(init_statement);
do {
body_statement;
[iteration_statement];
} while (test_expression)
for 循环
for ([init_statement]; test_expression; [iteration_statement]) {
body_statement;
}
写出控制循环结构的相关语句,并描述其作用
break:在循环体中,使用 break 关键字跳出整个循环。
continue:在循环体中,使用 continue 跳出本次循环,循环还会继续执行。
数组初始化的方式有哪些?请举例说明。
静态初始化:
type[] arrayName = {element1, element2,....}; // 比较常见
type[] arrayName = new type[]{element1, element2,...};
int[] arrs2;
arrs2 = new int[]{1, 2 ,3 ,4};
int[] arrs = {1, 2, 3, 4}; // 简写
动态初始化
语法:
type[] arrayName = new type[length];
请写出一个合理的数组,并使用foreach循环遍历到控制台
int[] nums = { 1, 2, 3, 4 };
foreach (int i in nums)
{
System.out.println(i);
}
类和对象是什么关系?类的命名规范是什么?
类是一群对象的特征母版,对象是类的具体实例。
类是一群对象的抽象。
类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorldApp;
类的成员有哪些?用于成员变量的修饰符有哪些?
类中有两种成员:成员变量以及成员函数。其中成员变量分为静态的成员变量以及非静态的成员变量;成员函数分为静态的成员函数以及
非静态的成员函数。
public(公共访问控制符),指定该变量为公共的,他可以被任何对象的方法访问。
private(私有访问控制符)指定该变量只允许自己的类的方法访问,其他任何类(包括子类)中的方法均不能访问。
protected(保护访问控制符)指定该变量可以别被自己的类和子类访问。在子类中可以覆盖此变量。
friendly ,在同一个包中的类可以访问,其他包中的类不能访问。
final,最终修饰符,指定此变量的值不能变。
static(静态修饰符)指定变量被所有对象共享,即所有实例都可以使用该变量。变量属于这个类。
transient(过度修饰符)指定该变量是系统保留,暂无特别作用的临时性变量。
volatile(易失修饰符)指定该变量可以同时被几个线程控制和修改。
成员变量包含哪些?命名规范分别是什么?
修饰符,数据类型,默认值
修饰符:可以省略,也可以是 public protected private static final abstract,其中 public protected private 只允许出现一个
数据类型:可以是任意的数据类型(包含基本数据类型、类类型、数组类型)
默认值:如果是类类型的,没有定义默认值,那么成员变量的值为 null,如果是基本数据,没有定义默认值,
那么成员变量的值是有意义的,比如 int 就是 0,boolean 就是 false。
请书写定义方法的语法?
[修饰符] 方法的返回值数据类型 方法名(形参列表) {
方法体语句;
}
请书写构造器定义的语法?构造器的用途是什么?
[修饰符] 类名([参数列表]) {}
构造器是用来创建和初始化对象的
请简述你对this的理解?写出使用this调用成员变量、方法、构造器的代码示例。
this是一个引用类型,在队中的每一个对象上都有this,this保存内存地址指向自身。this指当前对象
this可以通过一个构造方法调用另一个构造方法以实现代码重用的作用。
this应当出现在构造方法第一行。
ThisTest(int i){
this.i=i+1;//此时this表示引用成员变量i,而非函数参数i
System.out.println("Int constructor i——this.i: "+i+"——"+this.i);
System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));
//从两个输出结果充分证明了i和this.i是不一样的!}
// 第二个构造器:有一个String型形参
ThisTest(String s){
System.out.println("String constructor: "+s);
}
// 第三个构造器:有一个int型形参和一个String型形参
ThisTest(int i,String s){
this(s);//this调用第二个构造器
//this(i);
/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。
但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调
用一个且仅一次构造器!*/
this.i=i++;//this以引用该类的成员变量
System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);
}
public ThisTest increment(){
this.i++;
return this;//返回的是当前的对象,该对象属于(ThisTest)
}
public static void main(String[] args){
ThisTest tt0=new ThisTest(10);
ThisTest tt1=new ThisTest("ok");
ThisTest tt2=new ThisTest(20,"ok again!");
System.out.println(tt0.increment().increment().increment().i);
//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,
//接着又返回在上面返回的对象基础上i++的ThisTest对象!
}
}
方法的参数其实传递的是什么类型的数据?如果传入的是基本数据类型,是否原数据的值会发生改变?如果传入的是引用数据类型呢?阐述原因。
基本数据类型 引用数据类型
如果方法中传入的是基本数据类型,那么原变量的值是不会发生改变的,如果方法中传入的是引用数据类型(即类类型),那么传入方法中,如
果对对象的相关属性进行了修改,那么原对象的相关属性也会发生改变。
基本数据类型按值传递,相当于复制了一份过去,引用数据按地址传递,两个地方根据地址使用同一份数据,如被更改,则原有数据也会更改,例如数组,在传递数组时,如果接收到数组之后,对其修改,
那么原来的数组也会同时修改,因为它们指向同一个地址!
方法签名是什么意思?
方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成。
什么是方法重载?
重载就是函数或者方法有相同的名称,但是参数列表不相同的情形,
这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。在java中同一个类中的2
个或2个以上的方法可以有同一个名字
,只要它们的参数声明不同即可。这种情况下,该方法就被称为重载,这个过程称为方法重载
请分别说明类变量、实例变量、局部变量的生命周期?
1,局部变量
局部变量是指定义在方法或代码块中的变量,局部变量必须初始化,在方法或代码块内有效,之外则无效,方法执行开始入栈时创建,执行完毕出栈时销毁。
2,实例变量
其作用域受限定符限定,Private的只能在本类中使用,protected子类可用,public任何地方都可用。
生命周期从对象创建开始到对象销毁结束。
3, 类变量
类变量是指类的static变量,用类名可以直接访问。
生命周期从加载类开始,到销毁类结束。
- 请书写标准的对下面两个成员变量的封装方法:
a) private String name;
b) private String stuCode;
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStuCode() {
return stuCode;
}
public void setStuCode(String stuCode) {
this.stuCode = stuCode;
}
在企业开发中包名定义的规范是什么?
第一层是企业的域名的反写
例如:com.ntqingniao
第二层是企业项目的名称
例如:com.ntqingniao.j96、com.ntqingniao.crm
第三层是企业项目模块的名称
例如:com.ntqingniao.j96.oop、com.ntqingniao.crm.base
我们一般在什么情况下使用import语句?如果不使用import语句,有什么其他的解决方案?
当需要使用除了lang包之外的class的时候需要使用import导入使用的class所在的包
在同一包中的类可以互相引用,无需import语句
访问控制修饰符有哪些?分别的控制范围是什么?
public: 对外公开,可以在任何地方访问;
protected:当前包下及子类可以访问;
protected:没有访问控制修饰符,同一个包中可以访问;
private:只有当前类可以访问
对象在创建时的成员变量的默认值分别是什么?
基本数据:数值型的为0,布尔类型的为false,char类型的为’\u0000’;
引用数据类型:null;
请至少写出3个常用的JDK包。
java.lang,java.util,java.net,java.io,java.text,java.sql,java.awt