zoukankan      html  css  js  c++  java
  • JAVA编程基础&面试题

    编程基础

    短路运算符和位运算

    • 1.解释运算符&和&&、|和||的区别
    • 2.用最有效率的方法计算2乘以8:2<<3
      原理:将一个数左移n位,相当于乘以2的n次方。

    常见的JDK源码里面HashMap的默认容量是16

    int DEFAULT_INITIAL_CAPACITY=1<<4
    

    讲解异或的考察点与分析

    • 1.写个方法,传递两个非0的int数值进去,实现变量的交换方式有几种?
    public class SwapNum {
        //方法一
        public static void swap_01(int a,int b){
            a=a+b;
            b=a-b;
            a=a-b;
            System.out.printf("
    a=%d,b=%d",a,b);
        }
        //方法二
        public static void swap_02(int a,int b){
            a=a^b;
            b=b^a;//b=b^a^b=a
            a=a^b;//a=a^b^b^a^b=a^0^a^b=a^a^b=0^b=b
            System.out.printf("
    a=%d,b=%d",a,b);
        }
        //方法三:借助第三变量(略)
        public static void main(String args[]){
            int a=3,b=4;
            System.out.printf("a=%d,b=%d",a,b);//注意printf和println的区别,一个是可以格式化输出,一个不行的
            swap_01(a,b);
            swap_02(a,b);
        }
    }
    

    Java基础语法

    • 1.Java数据类型的划分和运算
      基础数据类型:byte、short、int、long、float、double、char、boolean
      引用数据类型:除了八个基础数据类型,其余的全部都是引用数据类型(如String、Enum)
    • 2.运算
      return的优先级大于自增/自减运算符的优先级
    public static int test1(){
            int i=0;
            return i++;//返回值为0
        }
        public static int test2(){
            int i=0;
            return ++i;//返回值为1
        }
    
    • 3.==与equals的区别

      基本数据类型:比较使用==判断是否相等
      引用数据类型:==比较的是内存地址是否一样,不同对象的内存地址不一样;equals比较的是具体的内容,可以自定义比较的规则。


    try-catch-finally执行顺序

    • 1.观察下列代码,说说执行结果
    public class TRY {
        public static int test1(){
            int a=1;
            try {
                System.out.println(a/0);
                a=2;
            }catch (ArithmeticException e){
                a=3;
                return a;
            }finally {
                a=4;
            }
            return a;
        }
        public static int test2(){
            int a=1;
            try {
                System.out.println(a/0);
                a=2;
            }catch (ArithmeticException e){
                a=3;
                return a;
            }finally {
                a=4;
                return a;
            }
        }
        public static void main(String args[]){
            System.out.println(test1());
            System.out.println(test2());
        }
    }
    

    在执行try、catch中的return之前一定会执行finally中的代码(若finally存在),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句是一定会被执行的。
    执行流程:finally执行前的代码里包含有return,则会先确定return的返回值,然后再执行finally中的代码,最后在执行return
    需要注意的是:在try-catch内确定好return的值之后,无论finally如何对该值怎么修改,只要finally内不含return,都是对返回值无效的修改。

    try-with-resource (JDK9)

  • 相关阅读:
    BitSet源码
    BitSet
    webrtc在ubuntu14.04上的编译过程(12.04亦可)
    使用 ssh -R 建立反向/远程TCP端口转发代理
    爬虫与反爬虫
    Linux IO模式及 select、poll、epoll详解
    PF_RING 总结
    40行代码的人脸识别实践
    初学者必读:IBM长文解读人工智能、机器学习和认知计算
    C 格式化显示时间(time.h)
  • 原文地址:https://www.cnblogs.com/mirage-mc/p/14285991.html
Copyright © 2011-2022 走看看