zoukankan      html  css  js  c++  java
  • Java面试常考知识

    1.请写出两个变量的数值交换,但不借助第三个变量的代码:

    方法一:

    public class Main{
        public static void main(String[] args){
            int a=11;
            int b=22;
            System.out.println("before:a="+a+",b="+b);
            a=a^b;
            b=b^a;
            a=a^b;
            System.out.println("after:a="+a+",b="+b);
        }    
    }

    方法2:

    public class Main{
        public static void main(String[] args){
            int a=11;
            int b=22;
            System.out.println("before:a="+a+",b="+b);
            a=a+b;
            b=a-b;
            a=a-b;
            System.out.println("after:a="+a+",b="+b);
        }    
    }

    方法三:方法二中加号变成乘号,减号变成除号。

    2.强制转换问题:下面哪个语句正确

    (1)short s=1;s=s+1;

     (  2 )short s=1;s+=1;

    答:(1)中s+1为整型,不能赋给short型,所以这条语句错误。(2)对于s+=1,由于赋值运算符中隐含的强制转换类型,所以+会将结果提升为int型,经过强制类型转换为short型后赋给s.

    3.

    1.public static int[] copyOf(int[] original,int newLength)

           original是原数组,newLength是新数组的长度,是从原数组的下标0处开始取,取够新数组需要的长度,

    若新数组的长度大于原数组的长度,超过的部分保留默认值

    2.public static int[] copyOfRange(int[] original,int from,int to)

           取指定范围内的元素给新数组,包括from,不包括to(左闭右开),若from=to,则取不到元素

    补充数组的赋值除了使用Arrays类中的copyof()和copyOfRange()方法以外,还可以使用System类的arraycopy()方法和Object类的Clone()方法

    3.public static boolean equals(int[] a1,int[] a2)

          判断两个数组是否相等,两个数组a1和a2具有相同数量的元素,且对应元素相等或者数组引用都为null才被认为相等(常用)

    4.public static void fill(int[] a,int val)

          把val值给数组a的每个值

    5.public static void fill(int[] a,int from,int to,int val)

          把val值给固定范围内的数组元素,包括from,不包括to,

    6.public static void sort(int[] a)

          按照数字顺序排列指定数组(升序)

    7.public static void sort(int[] a,int from,int to)

           给指定范围升序排序:from要排序的第一个元素的索引,to要排序的最后一个元素的索引

            paralleSort与sort形式一样,不过前者是并发操作,是针对流的操作,效率比sort高

    8.public static String toString(int[] a)

            返回指定数组内容的字符串表达形式

            Object类中的toString方法,在Object类下的toString方法返回的是标记符“@”和此对象哈希码的无符号十六进制表示做成:两者是重名函数关系,不是覆写

     4.Java StringTokenizer 类使用方法

    Java StringTokenizer 属于 java.util 包,用于分隔字符串。
    
    StringTokenizer 构造方法:
    
    1. StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。java 默认的分隔符是空格("")、制表符(	)、换行符(
    )、回车符(
    )。
    2. StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。
    3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
    StringTokenizer 常用方法:
    
    1. int countTokens():返回nextToken方法被调用的次数。
    2. boolean hasMoreTokens():返回是否还有分隔符。
    3. boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。
    4. String nextToken():返回从当前位置到下一个分隔符的字符串。
    5. Object nextElement():返回枚举 (Enumeration) 对象的下一个元素。
    6. String nextToken(String delim):与 4 类似,以指定的分隔符返回结果。

    实例:

    import java.util.*;
     
    public class Main 
    { 
        public static void main(String[] args)
        { 
            String str = "runoob,google,taobao,facebook,zhihu";
            // 以 , 号为分隔符来分隔字符串
            StringTokenizer st=new StringTokenizer(str,",");
            while(st.hasMoreTokens()) { 
                System.out.println(st.nextToken());
            }
        }
    }

    输出结果:

    runoob
    google
    taobao
    facebook
    zhihu
  • 相关阅读:
    C# FTP上传文件时出现"应 PASV 命令的请求,服务器返回了一个与 FTP 连接地址不同的地址。"的错误
    ESP32 学习笔记
    ESP32 学习笔记
    C# 实现窗口无边框,可拖动效果
    C# 获取IP地址
    C# 实现程序开机自启动
    C# 设置程序最小化到任务栏右下角,鼠标左键单击还原,右键提示关闭程序
    C# 生成机器码
    C# 隐藏窗口标题栏、隐藏任务栏图标
    C# 测量程序运行时间
  • 原文地址:https://www.cnblogs.com/cy0628/p/14618939.html
Copyright © 2011-2022 走看看