JAVA基础语法 (05--10):有面试问题

目录

1、注释、标识符、关键字
2、数据类型
3、 类型转换
4、 变量、常量
5、运算符
6、包机制、JavaDoc

三、类型转换
  • 由于Java是强类型语言,所以要进行有些运算的时候的,需要用到类型转换

    低      ------------------------------------------------->高
       byte-->short-->char-> int -> 1ong->float -> double
    

运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换
  • 自动类型转换
public class Demo5 {
    public static void main(String[] args) {
        int i = 128;
        //强制转换 (类型)变量名   高-->低
        byte b = (byte)i; //内存溢出

        //自动转换  低-->高
        double c =i ;


        System. out . println(i);
        System . out . println(b);
        System.out.println(c);
        

        /*
       注意点:
       1.不能对布尔值进行转换
       2. 不能吧俺对象雷翔转换成不想干的类型
       3. 高转低 自动转换
       4. 低转高 强制转换
       5. 会出现内存溢出和精度转换

         */
    }
}


结果如下:
在这里插入图片描述
精度问题,转换问题,溢出问题

public class Demo6 {
    public static void main(String[] args) {
        System.out.println("======精度问题=====");
        //精度问题
        System. out. println((int)35.4);
        System. out . println((int)-45.89f); //-45
      
        System.out.println("======char转换=====");
        char d = 'a';
        int e = d+1;
        System. out . println(e);
        System. out . println((char)e);

       //操作比较大的数字,注意溢出问题
        //JDK7的新特性,数字之间可以用下划线进行分割
        int money = 10_0000_0000;
        System.out.println("monry:"+money);
        int years = 20;
        int total = money*years;
        System.out.println("total1:"+total); // -1474836480 ,计算的时候溢出
        long total2 = money*years; //默认是 int 先转换成int 再转换成long
        System.out.println("total2:"+total2);

        long total3 = money *((long)years);  //先把一个数转换成long
        System.out.println("total3:"+total3);

        long total4 = years *((long)money);
        System.out.println("total3:"+total4);
    }
}

结果如下:
在这里插入图片描述在这里插入图片描述

四、变量,常量
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
变量
1.书写格式
type varName [=value] [{, varName[=value]}]
//数据类型变量名 =值;可以使用逗号隔开来声明多个同类型变量。

代码示例

public class Demo7 {
    public static void main(String[] args) {
        // int a,b,c
        int a=1,b=2,c=3;
        String name = "yee定去北京!";
        char x = 'X';
        double pi = 3.1515926}
}

注意事项:

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  2. 变量名必须是合法的标识符。
  3. 变量声明是-条完整的语句,因此每一个声明都必须以分号结束
2.变量作用域
  • 类变量 ====static
  • 实例变量 =====写在类中间,没有static
  • 局部变量 =====在方法里面

代码示例

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

public class Demo8 {
    //类变量 static
    static double salary = 2500;

    //属性,变量


    // 实例变量,从属于对象,从属于类
      //实例变量如果不自己初始化,这个类型的默认值是 0.0.0
      //布尔值 默认值是 false
      // 除了基本类型 其余的默认值都是 null

    String name; //不用初始化
    int  age;



    //main 方法
    public static void main(String[] args) {

        //局部变量 ;必须初始化,必须声明;
        int i = 1;
        System.out.println(i);


        //变量类型 变量名字 = new
        Demo8 demo08 = new Demo8();
        System.out.println(demo08.name);
        System.out.println(demo08.age);


        //类变量 static
        System.out.println(salary);

        //其他方法
    }}

3.变量命名规则
  • 所有变量、方法、类名:见名知意
  • 类成员变量:首宅母小写和驼峰原则:monthSalary除了第-个单词以外,后面的单词首字母大写lastname,lastName
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX VALUE
  • 类名:首字母大写和驼峰原则: Man, GoodMan
  • 方法名:首字母小写和驼峰原则: run(), runRun()
常量

常量:初始化后不能改变的数值

 final 常量名 = 值;
 final double PI=3.14;

常量名一般使用大写字符

五、运算符

Java 语言支持如下运算符:

  • 算术运算符:+, -, *, /, %(取余), ++, -

①代码示例

package operate;

public class Demo1 {
    public static void main(String[] args) {
        //二元运算符
       //Ctrl + D : 复制当前行到下一行
        int a=10;
        int b=20;
        int c=25;
        int d=25;
        System. out . println(a+b);
        System.out . println(a-b);
        System. out. println(a*b);
        System. out. println(a/b); //结果是 0  因为 10/20=0.5 默认输出int 四舍五入为0
        System.out.println(a/(double)b);// 结果是0.5

    }
}

在这里插入图片描述
②代码示例

package operate;

public class Demo2 {
    public static void main(String[] args) {
        long a = 132456789313L;
        int  b = 123;
        short c = 13;
        byte d =  2;

        System.out.println( a+b+c+d);  //Long  有long就是long
        System.out.println( b+c+d);   //int    没long有int 是int
        System.out.println( c+d);    //int      int short 是int
        System.out.println( d);


    }
}

在这里插入图片描述

  • 赋值运算符=
    代码示例
package operate;

public class Demo3 {
    public static void main(String[] args) {
        //关系返回的结果:正确  错误 返回是布尔值

    int a = 5;
    int b = 5;
    int c = 54;

    //取余 模运算
        System.out.println(c%a); // c / a    54 / 5 = 10 .... 4
        System.out.println(a<b);
        System.out.println(a>b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

在这里插入图片描述

  • 关系运算符:>,<, >=, <=, ==,!= instanceof
package operate;

public class Demo4 {
    public static void main(String[] args) {
        // ++ 自加  -- 自减   一元运算符
        int a = 3;

        int b = a++;    //a++ ===>  a = a+1
        System.out.println("第一次运算后的a和b");
        //先赋值 后自增
        System.out.println(a);
        System.out.println(b);

        int c = ++a;
        System.out.println("第二次运算后的a和c");
        //先自增 后赋值
        System.out.println(a);
        System.out.println(c);



        System.out.println("第一次运算后的a和b");


        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算  很多数学运算运用了Math方法
        double pow = Math.pow(2,3);

        System.out.println("pow结果");
        System.out.println(pow);

    }
}

在这里插入图片描述

  • 逻辑运算符:&&, |,!

代码示例

package operate;
//逻辑运算符
public class Demo5 {
    public static void main(String[] args) {
        //与            或          非
        boolean a = true ;
        boolean b = false;
        System. out . println ("a && b结果是:"+(b&&a)); //逻辑与运算:两个变量都为真,结果才为true
        System. out . println ("a||b结果是:"+(a||b)); //.逻辑或运算:两个变量有一个为真,则结果才为true
        System. out . println ("! (a && b)结果是: "+!(a&&b)); //如果是真,则变为假,如果是假则变为真


        //短路运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);  //第一步是错的就没有执行第二步,没有执行c++的操作
        System.out.println(d);
        System.out.println(c);      //如果执行了c++的操作 那么c输出结果是6

    }
}

在这里插入图片描述

  • 位运算符:&, |,^,~,>,<<,>>>了解!!!)

代码示例

package operate;

public class Demo6 {
    public static void main(String[] args) {

       /*
       逻辑运算
        A = 0011 1100
        B = 0000 1101
        ------------------------

        A&B = 0000  1100   (都1为1,有0位0)
        A/B = 0011  1101  (都0为0,有1为1)
        A^B = 0011 0001(相同为0,不同为1)
        ~B = 11111 0010(B是1,^B为0)


       位运算符操作:
        2*8=16        2*2*2*2
            <<    ======  *2
            >>    ======  /2
             0000 0000  0
             0000 0001  1
             0000 0010  2
             0000 0011  3
             0000 0100  4
             0000 1000  8
             0001 0000  16
*/
        System. out . println(2<<3);

    }}

在这里插入图片描述

  • 条件运算符? :

代码示例

package operate;
//三元运算符
public class Demo8 {
    public static void main(String[] args) {
        //x?y:z
        //如果x==true,则结果为Y,否则结果为Z

        int score = 60;
        String type1 = score < 50 ?"不及格":"及格";
        System.out.println(type1);
        String type2 = score < 90 ?"不及格":"及格";
        System.out.println(type2);
    }
}

在这里插入图片描述

  • 扩展赋值运算符:+=, -=, *=, /=

代码示例
面试问题:“ ”+a+b 和a+b+"" 的区别

package operate;

public class Demo7 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        //扩展赋值运算符
        a+=b;  // a=a+b
        System.out.println("a+=b的结果是: "+a);
        a-=b;//   a=a-b
        System.out.println("a-=b的结果是: "+a);

        //字符串连接符 +

        System.out.println("a+b的结果是:");
        System.out.println(a+b);
        System.out.println("\" \"+a+b的运算结果是:"+"\n"+" "+a+b);
        System.out.println("a+b\" \"的运算结果是:");
        System.out.println(a+b+" ");

    }
}

在这里插入图片描述
学习资料来源:狂神说JAVA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值