Java基础(2)

2021/7/7 22:39:52

本文主要是介绍Java基础(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

关键字和保留字

关键字

保留字

标识符

命名规则

命名规范

变量

变量的类型:

基本数据类型

引用数据类型

基本数据类型之间的运算规则

强制类型转换

注意的点

字符串类型 String

练习

进制与进制之间的转换(了解)

运算符

包机制


关键字和保留字

关键字

        被Java语言赋予了特殊含义,用做专门用途的字符串

        特点:关键字所有字母都为小写

保留字

        现有Java版本尚未使用,但以后版本可能作为关键字使用。

        goto、const


标识符

对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

命名规则

  • 由26个英文字母大小写,0-9,_或$组成
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。

命名规范

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:XxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ

变量

  • 数据类型 变量名 = 变量值;
class VarTest{
    public static void main(String[] args){
        int myAge = 10; //变量类型 变量名 = 变量值
        System.out.println(myAge);
    }
}
  • 变量是程序中最基本的存储单元,包含变量类型,变量名和存储的值
  • 先声明,后使用
  • 变量的作用域:全局变量 or 局部变量;对应的作用域命名不能重复

变量的类型:

 按照数据类型:

基本数据类型

  1. 数值型:整数类型(byte 1字节= 8bit    范围:-128~127、short 2字节、int 4字节、long 8节,声明long时,必须以“l”或“L”结尾)、浮点类型(float 4字节声明float时,必须以“f”或“F”结尾,double 8字节 通常使用double
    long l1 = 23444444L;
    
  2. 字符型 char 1字符 = 2字节
    char c1 = 'a'; //1 只能写一个字符
    char c2 = '\n'; //2 转义字符
    char c3 = '\u0043';//3 直接使用Unicode值来表示字符型常量
  3. 布尔型 boolean   true/false

引用数据类型

  1. 类 class         包括字符串
  2. 接口 interface
  3. 数组 array []

基本数据类型之间的运算规则

只讨论前七种类型,不含Boolean类型

自动类型提升:进行运算时,容量(数的范围大小,并非占用的内存大小)小的会转成大的

byte、char、short ---> int ---> long ---> float ---> double

特别的,当byte、char、short做运算时,结果为int类型

class VarTest{
    public static void(String[] args){
        byte b1 = 2;
        int i1 = 129;
        //编译不通过  byte b2 = b1 + i1;
        int i2 = b1 + i1;
        System.out.println(i2);        
    }
}

强制类型转换

需要使用强转符:()

注意:可能导致精度损失

class VarTest{
    public static void main(String[] args){
        double d1 = 12.3;
        
        int i1 = (int)d1;//截断操作

        System.out.println(i1);
    }
}

注意的点

  1. 使用long是结尾没加“L”,结果还是能输出,为什么? 答:此时会按照int来执行,如变量值未超过int范围,则不会报错,否则,会报错。 但float如果不加“F”,就会报错。
  2. 整型常量,默认是int型;浮点型常量,默认是double型

字符串类型 String

String 是引用数据类型

声明时,使用 双引号 " " 

String可以和8中基本数据类型做运算,但只能是连接运算。运算结果仍是String类型

String str = "hello world";//长度没有限制
String str = "";   //也可以为空

int number = 1008;
String numberStr = "学号";
String info = numberStr + number;
System.out.println(info);

练习

1、

char c = 'a';
int num = 10;
String str = "hello";
System.out.println(c + num + str);  //107hello
System.out.println(c + str + num);  //ahello10
System.out.println(c + (num + str));  //a10hello
System.out.println((c + num) + str);  //107hello
System.out.println((str + num) + c);  //hello10a

2、 注意单引号和双引号的区别

//输出 *    *
System.out.println("*    *"); //*    *
System.out.println('*' + '\t' + '*'); //93*
System.out.println('*' + "\t" + '*'); //*    *
System.out.println('*' + '\t' + "*"); //51*
System.out.println('*' + ('\t' + "*")); //*    *

进制与进制之间的转换(了解)

  1. 二进制、0,1
  2. 十进制、0-9
  3. 八进制、0-7
  4. 十六进制 0-9及A-F, a-f不区分大小写

原码、反码、补码。计算机底层都以补码的方式来存储数据。

public class Demo1 {
    public static void main(String[] args) {
        //进制 二进制0b 十进制 八进制0 十六进制0x
        int i = 10;
        int i2 = 010;
        int i3 = 0x10;//十六进制
        System.out.println(i + " " + i2 + " " + i3);
        System.out.println("===============");

        //强制类型转换
        char c1 = 'a';
        char c2 = '红';
        System.out.println(c1);
        System.out.println(c2);

        System.out.println((int)c1);
        System.out.println((int)c2);

        //Unicode编码
        char c3 = '\u0061';
        System.out.println('\n' + "C3:" + c3);

        //转义字符
        //  \t制表符
        //  \n 换行符

        System.out.println("===============");

        String stra = new String("hello world");
        String strb = new String("hello world");

        String strc = "hello world";
        String strd = "hello world";

        System.out.println(stra == strb);  //false
        System.out.println(strc == strd);  //true
        
        //boolean
        boolean flag = true;
        if(flag){  }  //老手
        if(flag == true){} //新手
    }
}


运算符

package Base.operator;

public class Demo1 {
    public static void main(String[] args) {
        /*
        算数运算符
        赋值运算符
        关系运算符
        逻辑运算符
        位运算符
        条件运算符
        扩展赋值运算符
         */

        //二元运算符
        int a = 10;
        int b = 10;
        int c = 10;
        int d = 100;

        System.out.println(a + b);
        System.out.println(a - b);
        System.out.println(c - d);
        System.out.println((double) c / d);

        //关系运算符
        int a1 = 10;
        int b1 = 3;

        //取余运算
        System.out.println("取余:" + a1 % b1);
        System.out.println("=====\n关系运算符,只返回Boolean类型");
        System.out.println(a1 == b1);
        System.out.println(a1 >= b1);
        System.out.println(a1 < b1);
        System.out.println(a1 != b1);

        //自增 ++ 自减 --
        int num = 7;
        System.out.println("初始num: " + num);
        int b3 = num++;  //先赋值,后自增
        System.out.println("执行num++: " + b3);

        num = 7;
        System.out.println("初始num: " + num);
        int c3 = ++num; //先自增,后赋值
        System.out.println("执行++num: " + c3);

        //幂运算
        double pow = Math.pow(2 , 3); //2的3次方
        System.out.println(pow);

        //逻辑运算符
        //与 或 非
        boolean bool1 = true;
        boolean bool2 = false;
        System.out.println("bool1 && bool2: " + (bool1 && bool2));  //同真则真
        System.out.println("bool1 && bool2: " + (bool1 || bool2));  //一真则真
        System.out.println("bool1 && bool2: " + !(bool1 && bool2)); //如果是真,则变为假;为假,则变为真。

        //短路运算
        int c4 = 5;
        boolean d4 = (c < 4) && (c++ < 4); //判断第一个括号之后,为假,不在执行后面的运算
        System.out.println("d4: " + d4);  //false
        System.out.println("c4: " + c4);  //5

        //位运算
        /*
        A = 0001 1110
        B = 0101 0101
        A&B、A|B、A^B、~B(取反)
        << 左移 相当于 *2  2<<3 相当于 2*2*2*2,乘了3个2
        >> 右移 /2
         */
        System.out.println(2<<3); //16

        //条件运算符
        //x ? y : z
        //如果x为true,则结果为 y,否则为 z
        a = 100;
        String str = a > 90 ? "true" : "false" ;
        System.out.println(str); //true

        //字符串连接符
        a = 111;
        b = 222;
        System.out.println("" + a + b); //111222
    }
}

包机制

  • 作用:如同文件夹
  • 一般利用公司域名倒置作为包名 例如www.AAAA.com,第一个包可以叫com,第二个叫AAAA
  • 为了能使用某一个包的成员,我们需要在Java程序中明确导入该包。使用import语句即可完成此功能



这篇关于Java基础(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程