码迷,mamicode.com
首页 > 编程语言 > 详细

Java小知识点

时间:2018-02-25 15:59:15      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:取值   char   赋值   err   不可   包括   int   表数   因此   

?Java变量:

?java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

?java程序中每一个变量都属于特定的数据类型,使用前必须声明:

    eg:

          int i=100;

          float f=12.4f;

          double d=0.12;

          String s="helloWord";    

 ?从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值,才能使用。

Java变量分类:

 ?按被声明的位置划分:

     ?局部变量:方法或语句块内部定义的变量【方法体内部声明的变量(包括形参)成为局部变量】 

     ?成员变量:方法外部、类的内部定义的变量 【在方法体外,类体内声明的变量成为成员变量】

     ?注意:类外面(与类对应的大括号外面)不能有变量的声明

public class test {

    int j = 9;// 成员变量 //方法的参数是局部变量 eg:args

    public static void main(String[] args) {// 方法体
        
        int i = 100;// 局部变量
    }
}

 ?按所属的数据类型划分:

    ?基本数据类型变量

    ?引用数据类型变量

    技术分享图片

    boolean  逻辑运算符  只有true和false两个值

public class test {

    public static void main(String[] args) {
        
        boolean flag=true;
        if(flag){
            //do something
        }    
    }    
}

技术分享图片

 技术分享图片

技术分享图片

 基本数据类型转换:

   ?Boolean类型不可以转换为其他数据类型,其他数据类型也不能转换为Boolean类型

   ?容量小的类型自动转换为容量大的数据类型,数据类型按容量大小排序为

         byte,short,char—>int—>long—>float—>double

         byte,short,char之间不会相互转换,他们三者计算时首先转换为int类型

    ?容量大的数据类型转换为容量数据小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出;使用时要注意

    ?有多种类型的数据混合运算时,系统首先自动的讲所有数据转换成容量大的数据类型,然后再进行计算。public class test {

public static void main(String[] args) {// 方法体
        int a=123;
        int b=456;
        double d=(a+b)*1.6;//系统会自动转换为double类型
        float f=(float)((a+b)*1.6);//需要加强制转换   float的数据容量比double大
        byte b1=67;
        byte b2=90;
        byte b3=(byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
        System.out.println(b3);//打印结果为:-99  原因:byte表数范围是-128~127
        
        float f3 = 1.23f;//必须加f
        long l1 = 123;
        long l2 = 30000000000L;//必须加l
        float f4 = l1+l2+f3;//系统将转换为float型计算
        long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
        System.out.println(f4);
        System.out.println(l);
} }

 自加自减运算符:

     ?++(--)  在前时先运算再取值

                       在后时先取值再运算

public class test {

    public static void main(String[] args) {
        int i1 = 10;
        int i2 = 20;                                         
        int i = (i2++);
        System.out.print("i="+i);
        System.out.println("i2="+i2);
        i = (++i2);
        System.out.print("i="+i);
        System.out.println("i2="+i2);
        i = (--i1);
        System.out.print("i="+i);
        System.out.println("i1="+i1);
        i = (i1--);
        System.out.print("i="+i);
        System.out.println("i1="+i1);
    }    
}

打印结果:
i=20 i2=21 i=22 i2=22 i=9 i1=9 i=9 i1=8

 逻辑运算符:

技术分享图片

public class test {

    public static void main(String[] args) {
        boolean a,b,c;
        a = true;
        b = false;
        c = a & b;
        System.out.println(c);//false
        c = a | b;
        System.out.println(c);//true
        c = a ^ b;
        System.out.println(c);//true
        c = !a;
        System.out.println(c);//false
        c = a && b;
        System.out.println(c);//false
        c = a || b;
        System.out.println(c);//true
    }    
}
public class test {

    public static void main(String[] args) {
        int i = 1,j = 2;
        //第二个操作不再计算
        boolean flag1 = (i<3)&&((i+j)>5);
        boolean flag2 = (i<3)&&((i+j)<5);
        boolean flag3 = (i==1)&&((i+j)<5);
        System.out.println(flag1);//false
        System.out.println(flag2);//true
        System.out.println(flag3);//true
        //第二个操作不再计算
        boolean flag4 = (i<2)||((i+j)<6);
        boolean flag5 = (i>2)||((i+j)<6);
        boolean flag6 = (i<2)||((i+j)<6);
        System.out.println(flag1);//false
        System.out.println(flag2);//true
        System.out.println(flag3);//true
    }    
}

技术分享图片

 switch语句:

public class test {

    public static void main(String[] args) {
        int score = 69;
        if(score>100||score<0){
            System.out.println("输入成绩有误");
        }else{    
            switch(score/10){
            case 10:
                System.out.println("极好");
                break;
            case 9:
                System.out.println("特棒");
                break;
            case 8:
                System.out.println("优秀");
                break;
            case 7:
                System.out.println("良好");
                break;
            case 6:
                System.out.println("及格");
                break;
            case 5:
            case 4:
            case 3:
            case 2:
            case 1:
                System.out.println("不及格");
                break;
            default:
                System.out.println("error");
        }
      }
    }    
}

 技术分享图片

递归调用:

public class test {

    public static void main(String[] args) {
        System.out.println(method(3));
    }    
    
    public static int method(int n){
        if(n == 1){
            return 1;
        }else{
            return n*method(n-1);
        }        
    }
}

技术分享图片

 程序执行过程:

技术分享图片

stack:栈  存放局部变量

heap:堆  动态申请内存用的  new出来的东西

  

Java小知识点

标签:取值   char   赋值   err   不可   包括   int   表数   因此   

原文地址:https://www.cnblogs.com/joy410-love/p/8465189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!