java基础(一)

## 1.jdk, jre, jvm分别是什么,有什么关系


jdk是Java开发工具包
jre是java运行环境
jvm java虚拟机
 

2.目前我们学过的循环有哪些?有什么区别

for确定循环次数
while
先判断再执行不确定循环次数
do-while先执行再判断不确定循环次数

3.外层循环与内层循环之间有什么关系

外层循环变量变化一次内层循环变量变化一轮
 

4.break和continue的区别

break跳出整个switch或者循环结构
continue跳出本次循环继续执行下-次

5.循环中存在switch, switch中的break将会中断循环,对吗?

不对,跳出switch

6.switch支持的数据类型有哪些?

byte short int char String枚举

7.比较字符串的内容使用什么方法?

equals方法

8.描述方法的形参和实参

形参:定义方法的时候书写的参数,规定了参数的个数类型顺序
实参:调用方法的时候传入的参数,必须遵循形参的约定
 

9.值传递和引用传递的区别

值传递传递的是值的拷贝

所以方法中对参数的操作不会影响原来的变量
引用传递传递的是地址

所以方法中对参数的操作会影响原来的变量

10.Arrays类toString,copy0f,sort方法的作 用

toString将数组作为字符串打印
copyOf复制数组
sort升序排序

11.delete和truncate的区别

1 delete 可以加 where 条件 ,truncate 不能加
2. truncate 删除 效率高一点点
3. truncate 删除 不能回滚,delete 可以
4. truncate 删除 没有返回值 delete 有返回值
5 假如删除的表 有自增序列 ,使用delete 删除,自增序列从删除的断点开始
truncate 会使自增序列从头开始
 

12.复制数组的几种方式

使用循环依次复制元素
System.arraycopy(原数组,起始,新数组,起始,长度);
Arrays.copyOf(原数组,长度);

clone

clone方法是从Object类继承过来的,基本数据类型(String,boolean,char,byte,short,float,double.long)都可以直接使用clone方法进行克隆,注意String类型是因为其值不可变所以才可以使用。

13.类和对象什么关系

类是对象的抽象
对象是类的具体

14.什么是属性和方法

属性是指一类事物共有的特征,方法是一类事物共有的行为

15.普通方法的定义格式

访问修饰符+返回值类型+方法名

16.什么是形参,什么是实参

形参,形式参数,在定义方法的时候书写的参数,规定了参数的个数,类型,顺序
实参,实际参数,在调用方法的时候传入的参数,必须遵守形参的规定

17.怎样创建对象

使用new关键字创建对象

18怎样访问对象的属性和方法

通过对象名+ .属性名/方法名

19.本类中的方法可以互相调用吗

可以

20.main方法能直接访问对象的属性和方法吗

不能直接访问,必须先new对象

21.你怎么理解万物皆对象

自然界中一切事物都可以分析出特征和行为,编写为类,由类衍生为对象

22.封装的作用,实现封装的步骤?

封装的作用降低程序的耦合度提高程序的安全性使用private修饰提供两个公开的方法-个取值getter赋值setter

23封装中get和set方法分别作用?

get取值set赋值

24.现有String name,int age手写实现封装

public String getName(){
return name;
public void setName(String name){
this.name = name;
}

25.包的命名规范是什么?

域名倒置全部小写不能以点开头或者结尾可以包含点每包含-个点表示一个新的子文件夹

26.this关键字的含义和适用场景

this表示当前对象
访问属性
访问方法
访问构造必须写在构造方法的第一句

27.静态与非静态访问规则

静态与静态互相直接访问
静态访问非静态先实例化才能访问
非静态访问静态直接访问

28.为什么比较字符串要使用equals, equals方法的由来是什么,比较规则是什么?

因为String是引用数据类型,使用==比较的为地址,String类使用equals比较的是内容是从Object类继承来的将字符串转换为char数组,遍历比较元素

29.方法重写的特点

父子类方法名相同

参数列表相同

返回值相同

或者是其子类访问权限不能严于父类静态方法

可以被继承但是不能被重写

非静态方法不能重写为静态方法

不能抛出比父类更多的异常

30.==和equals的区别,分别说明在比较基本和引用数据类型时的区别

= =比较基本数据类型比较值= =比较弓|用数据类型比较的是地址equals本身也比较地址,但是我们可以重写按照我们自己的比较规则来比较String类就是对equals进行了重写,重写为比较内容

31.继承中实现多态的主要方式是什么?两种

父类作为形参子类作为实参.父类作为返回值实际返回子类类型

32.如果引用数据类型强转错误,将会出现什么异常

类型转换异常ClassCastException

33.现有子类Cake,父类Food,分别书写向.上转型和向下转型并标明

错误: Food food = new Food(); Cake cake = (Cake)food;Food f = new Cake(); Cake C = (Cake)f;

34向.上转型可以调用哪些方法?

向.上转型可以调用子类重写父类的方法和父类访问权限允许的方法不能调用子类的独有的方法

35.向下转型可以调用哪些方法?

向下转型可以调用子类重写父类子类独有的

36 .==和equals的区别

= =比较基本比较值==比较弓|用比较地址equals本身也比较地址,但是我们可以重写按照我们自己的比较规则比较String类重写为比较内容

37.static关键字可以修饰哪些内容,分别有什么特点

属性,在内存中只有- -份拷贝,可以通过类名直接访问,不需要new对象方法,可以通过类名直接访问,不需要new对象代码块,随着类的加载而执行,只执行一次

38.instanceof关键字的作用

判断当前实例是否属于某个类型是的话返回true否返回false

39.请写出抽象类的所有特点

1抽象类不能直接new对象,必须new子类

2.子类必须重写父类的抽象方法,除非子类也是抽象类

3抽象类可以书写普通属性,普通方法,构造方法用于给子类使用

4.没有抽象的静态方法和构造方法

5.多态的使用方式与之前一致

40abstract使用总结:

  1. abstract修 饰的方法没有方法体
  2. abstract修 饰的方法必须定义在abstract修饰的类内或者interface接口内
  3. 一个普通类[非abstract] 修饰的类,继承了-个abstract类,那么必须实现在abstract类内的所有abstract,强制要求
  4. 如果一个abstract A类继承另-一个abstractB类,A类可以选择实现B类中abstract方法。
  5. abstract修 饰的类内允许普通方法
  6. abstract修 饰的类不能创建自己的类对象!! ! [原因]abstract修饰的类内有可能存在abstract修饰的方法,而abstract修饰的方法是么有方法体的,如果说创建了abstract修饰类对应的对象,不能执行没有方法体的abstract方法=

41.一.个类内没有abstract修饰的方法,那么这个

类定义成abstract类有意义吗?

没有必要的! ! !无意义的! ! !

42.写出接口的所有特点,分别写明1.7和1.8

1.71.接口中所有的方法是全局抽象方法

2.接口中属性都是全局静态常量

3.实现类必须实现接口中所有的方法,除非子类是抽象类或者接口

4.接口可以继承多个接口

5.-个类可以实现多个接口

6.接口不能new对象,必须通过new实现类创建对象

1.81接口中可以书写普通方法,在返回值之前使用default关键字修饰2.接口可以书写静态方法

43接口和抽象类的区别是什么?什么场景使用哪个?

1.接口中默认都是抽象方法,抽象类可以写普通方法

2.接口中不能有普通属性,抽象类可以

3.接口中不能有构造方法,抽象类可以

4.只能继承一个抽象类,可以实现或者继承多个接口

44.分别说明方法重载和方法重写的特点

重载:方法名相同,参数列表不同,访问权限返回值无关重写:方法明相同,参数列表相同,返回值相同或者是其子类,访问权限不能严于父类,不能抛出比父类更多的异常,静态方法不能被重写

45.多态的表现形式,如何避免转型报错

1.父类作为形参2.父类作为返回值向下转型使用instanceof关键字判断

46.静态方法如何访问实例属性和方法,实例方法如何访问静态属性和方法

访问实例方法: new对象,通过对象名加点访问访问静态方法:本类直接方法,其他类通过类加点访问

47.面向对象的特征是什么?详细描述

封装,属性私有,方法公开。将类的信息隐藏在类的内部,不让外部直接访问,而是提供公开的方法给外部访问。提高程序的安全性,降低程序的耦合度。继承,将一些类共有的新提取到父类中,子类继承父类,实现代码的重用。多态,同一段代码,因为参数或者返回值的不同,产生不一-样的效果。

48.方法重写和方法重载的区别

重载:同类,名称相同,参数列表不同,返回值访问修饰符无关重写:父子类,名称相同,参数列表相同,返回值相同或者是其子类,访问权限不能严于父类,不能抛出比父类更多的异常,静态方法不能被重写

49.你认为什么是接口,和抽象的区别是什么?

接口相当于一项能力, -个头衔,只关注约定,不关注具体实现抽象类中可以写属性,普通方法,构造方法,接口中不能写

50. 如果关注事物的本质,使用抽象类,如果关注功能,使用接口。为什么?

因为抽象类中可以使用属性描述事物,而接口不能,因为接口中默认都是全局静态常量

你可能感兴趣的:(java,开发语言)