- 配置PATH的作用?
因为在jdk下bin文件夹中有很多我们在开发中要使用的工具,如java.exe,javac.exe,jar.ex等,那么我们在使用时,想要在电脑的任意位置下使用这些java开发工具,那么我们就需有把这些工具所在的路径配置到系统的环境变量中,当我们使用时,系统可以帮且我们找到这些命令。
- java的基本数据类型分为四型八种,分别指那些?我们选择数据类型的时候按照那种原则选用?
基本数据类型:
整型 :int ,byte, long,short , -128 ~ 127
浮点型:float , double
字符型:char
布尔值型:boolean
节省内存空间的原则
- 定义一个函数接收一个分数,然后判断并输出录入的分数对应的等级。100-90 A级, 89-80 B级,79-70 C级 以此类推,一直到E级。
4. 定义一个程序。计算1-100奇数的总和,要求使用上continue关键字。
public class Demo4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 定义一个程序。计算1-100奇数的总和,要求使用上continue关键字。
*/
//continue; // 跳出本次循环 ,循环没有结束的 ,直接进入下一次循环
//break : 直接结束循环。
int sum = 0;
for(int i = 1 ; i<=100 ;i++){
if(i %2 == 0)
continue;
sum+=i;
}
System.out.println(sum);
}
}
5. 定义一个函数接收一个数组对象,找出数组中的最大、最小值相加,把总和返回给调用者。
public class Demo5 {
public static void main(String[] args) {
/*
* 定义一个函数接收一个数组对象,找出数组中的最大、最小值相加,把总和返回给调用者。
*/
int[] arr = {3,5,2,6,9};
int sum = getSum(arr);
System.out.println(sum);
}
public static int getSum(int[] arr){
int min = arr[0];
int max = arr[0];
for(int i = 0;i < arr.length ;i++){
//找最大值
if(max < arr[i]){
max = arr[i];
}
//找最小值
if(min > arr[i]){
min = arr[i];
}
}
return max + min;
}
}
6. 自定义一个数组,使用冒泡排序思想对数组的元素进行排序。
7.简单的描述面向对象的三大特征。
1..继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
2.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
3. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
8. .抽象类和接口的区别
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基
本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而
可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象
静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代
之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的
接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量
。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即
将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。
由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类
型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
9.定义一个单例
第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类
初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
10.Error与Exception有什么区别?
Error表示系统级的错误和程序不必处理的异常,
Exception表示需要捕捉或者需要程序进行处理的异常。
11. 在java中一个类被声明为final类型,表示了什么意思?
表示该类不能被继承,是顶级类,最终类。
12.java中常量的定义方式
Public static final 变量名 = 值
13. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为
s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。
14.abstract class和interface有什么区别?
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基
本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而
可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象
静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代
之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的
接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量
。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即
将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。
由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类
型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
15.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后
会执行,在return前执行。
16. 编程题: 用最有效率的方法算出2乘以8等於几?
2<<3
17 .重写和重载的区别在于
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类
之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其
父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子
类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们
或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以
改变返回值的类型。
18.用代码实现一个内部类的访问
class Outer
{
//内部类
class Inner
{
public void print(){
System.out.println("这个是局部内部类的方法");
}
}
}
class Demo7
{
public static void main(String[] args) {
Outer.Inner inner = new Outer().new Inner();
inner.print();
}
}
19.构造方法和普通方法的区别
构造方法是没有返回值的,方法名一定是类名,不能被对象调用,只会在创建对象时执行一次。
20.编成题:金额转换,阿拉伯数字的金额转换成中国传统的形式如:
(¥1011)->(一千零一拾一元整)输出。
附件题目
1.目前有数组” int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组不准浪费长度。
public class Demo21 { /** * @param * 1.目前有数组” int[] arr = {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回的数组不准浪费长度。 */ public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {11,2, 4, 2, 10, 11}; //1.计算重复的个数 int count = 0 ;//记录重复的个数 for(int i= 0; i < arr.length -1;i++){ for(int j = i+ 1 ; j<arr.length;j++){ if(arr[i] == arr[j]){ count++; break; // 防止重复计数 } } } //System.out.println(count); //2.创建一个新的数组,将旧的值赋值给新数组。 int[] newArr = new int[arr.length - count]; int index = 0; for(int i = 0;i < arr.length ;i++){ //定义一个变量来判断是否是重复的值 boolean flge = false; //将新数组中的元素和旧数组中的元素做对比,如果俩个值相等部赋值 ,不等才赋值。 //11,2, 4, 2, 10, 11 for(int j = 0 ; j < newArr.length ; j++){ if(newArr[j] == arr[i]){ //不赋值 flge = true; break; } } if(flge == false){ //不重复才赋值 //赋值 newArr[index++] = arr[i]; } } for(int a:newArr){ // 增强for循环 System.out.println(a); } } } |