Java核心基础(1) 基本语法

Java基本语法

面试题总结(1)

1、一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制

  可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一
致。

2、Java 中有没有 goto?

  有,但是是作为保留字使用,现在没有在Java中使用。

3、八种基本数据类型和包装类以及大小。

八种基本数据类型          包装类              大小 
byte                    Byte             8位     -2^7   ~  2^7-1
short                   Short            16位    -2^15  ~  2^15-1       
int                     Integer          32位    -2^31  ~  2^31-1
long                    Long             64位    -2^63  ~  2^63-1
double                  Double           64位    -2^63  ~  2^63-1
char                    Character        16位    \u0000 ~  \uFFFF 
boolean                 Boolean          1位  

4、说说&和&&的区别。

  &和&&都可以用作逻辑与的运算符,表示逻辑与( and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。
  &&还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null&& !str.equals(“”))表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出现 NullPointerException (空指针异常)如果将&&改为&,则会抛出 NullPointerException 异常。
  &还可以用作位运算符,当&操作符两边的表达式不是 boolean 类型时, &我们通常使用0x0f 来与一个整数进行&运算,来获取该整数的最低4个 bit 位,例如, 0x31 &
0x0f 的结果为0x01。

5、用最有效率的方法算出2乘以8等于几?

  2 << 3,
  因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算cpu直接支持的,效率最高,所以,2乘以8等於几的最效率的方法是2 << 3。

6、能被Switch的数据类型有哪些?

  在 switch( expr1)中, expr1只能是一个整数表达式或者枚举常量,
所以能被Switch的数据类型有: byte,short,int,char。
在jdk1.7之后String也可以。

7、char 型变量中能不能存贮一个中文汉字?为什么?

  char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字, unicode编码占用两个字节,所以char类型的变量也是占用两个字节。一个char类型的大小为16位也就是两个字节,所以能存储一个汉字。

8、数组中的排序

选择排序:
  第0个逐次和第一个,第二个,第三个••••••比较,并和比他小的交换位置,一轮过后第0个为最小值,第1个在和第二个,第三个••••••比较,并和比他小的交换位置。。依次循环,此时上一轮的第一个不用比较,最终得到一个从小到大的序列。

public static void selectSort(int[] arr)
    {
        // 1,定义外循环,确定参与比较的元素。
        for (int x = 0; x < arr.length - 1; x++)
        {
            for (int y = x + 1; y < arr.length; y++)
            {
                // 判断前一个大于后一个,就进行位置置换。
                if (arr[x] > arr[y])
                {
                    swap(arr, x, y);
                }
            }
        }
    }

冒泡排序:
  第0个和第一个比较,若第0个大则和第一个交换位置,第一个和第二个比较,大的后移,第二个和第三个比较,••••••以此类推,第一轮结束后最后一个为最大值。。。在从头开始进行第二轮比较,此时最后一个不用比较

public static void bubbleSort(int[] arr)
    {
        for (int x = 0; x < arr.length - 1; x++)
        {
            for (int y = 0; y < arr.length - 1 - x; y++)
            {
                if (arr[y] > arr[y + 1])
                    swap(arr, y, y + 1);
            }
        }
    }

9、数组的定义和初始化

一维数组的初始化;

元素类型 [] 数组名(标识符) = new 元素类型 [元素的个数或者数组的长度]
int [] arr =new int[5];

//声明并未初始化
int [] as1;

//声明并初始化
int [] as ={1,2,3,4,5};

//声明数组并定义大小
int [] a =new int[10];

int [] aa=new int[]{1,2,3,45,5};
二维数组定义
//二维数组中有3个一维数组,每一个一维数组中有2个元素
int[][] arr = new int[3][2];

int[][] arr2 = new int[3][];

        //分别对二维数组中的每一个小数组进行初始化。
        arr2[0] = new int[3];
        arr2[1] = new int[1];
        arr2[2] = new int[2];

int[][] arr = { { 2, 31, 4, 99 }, { 78, 35, 9, 6 }, { 7, 3, 5, 32 } };

10、请说明一个 JAVA 类中主要包含哪几个元素?并说明每种元素的作用。

主要包含属性、方法、构造方法、块以及内部类。
属性用来定义对象的数据;
方法用来定义对象的行为;
构造方法可以用来创建对象;
块能够用来在类加载时执行操作或者在每次实例化前执行通用操作;
内部类作为类的一个成员存在,能够访问外部类的属性和方法

11、说明构造方法的作用和特征?

在对象创建时就被调用了。作用:对对象进行初始化。
特征:
和类名相同没有返回值
当有多个构造函数,以重载的形式呈现,并只能使用一次
注:
1.构造方法在类实例化 的时候自动执行
2.{ } 代码块优先执行于构造方法
3.构造方法不能人为调用

12、使用stastic修饰属性或方法后,属性和方法有什么特征?

1:被Static修饰的内容能实现所有对象共享
2:生命周期变长,随着类的加载而出现,随着类的消失而消失
3:多了调用方法:类名.属性名或类名.方法名调用
Static属于类,代码块和构造函数属于对象。
先有类,后有对象,代码块优先于构造函数执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值