第一章----Java编程基础

一、第一个Java程序

例:实现输出Hello World

class HelloChina{
        public static void main(String [] args){
    System.out.println("Hello World");
}
}

在这里插入图片描述

二、注释

|-单行注释://
|-多行注释:/* */

作用:
1.对所写的程序进行解释说明,增强可读性,方便自己,方便别人;
2.可以调试所写的代码
3.注释的内容不参与编译,编译以后生成的.class结尾的字节码文件中不包含注释信息
4.多行注释不可以嵌套使用

|-文档注释:/** */
注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档
例:javadoc解析:

javadoc -d myhello -author -version HelloJava.java

三、总结

1.Java程序编写-编译-运行的过程
|-编写:将编写的Java代码保存在以“.java”结尾的源文件中
|-编译:使用javac.exe命令编译java源文件,格式:javac 源文件名.java
|-运行:使用java.exe命令解释运行字节码文件,格式:java 类名
2.一个java源文件中可以声明多个class,但是,最多只能有一个类声明为public,而且要求声明为public的类的类名必须与源文件名相同。
3.程序的入口是main()方法,格式是固定的。
4.输出语句:

System.out.println("Hello World!");//先输出,后换行
System.out.print("Hello World!");//只输出

5.每个执行语句都以“;”结束。
6.编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java 源文件中的类名相同。

四、Java语言特点

1.面向对象性:
|-两个要素:类、对象
|-三个特征:封装、继承、多态
2.健壮性:
|-去除了C语言中的指针
|-自动垃圾回收机制—>仍然会出现内存溢出和泄露
3.跨平台性:write once,run anywhere:一次编译,到处运行。
在这里插入图片描述

五、 关键字和保留字

关键字:
|-定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)
|-特点:关键字中所有字母都为小写
保留字(goto、const):现有Java版本尚未使用但以后版本可能会作为关键字使用。命名时,要避免这些保留字。

六、标识符

|-定义:Java对各种变量、方法和类等要素命名时使用的字符序列称为标识符
|-技巧:凡是可以起名字的地方都叫表示符
定义合法表示符规则:
|-由26个英文字母大小写,0-9,_或$组成
|-数字不可以开头
|-不可以使用关键字和保留字,但能包含关键字和保留字
|-Java中严格区分大小写,长度无限制
|-标识符不能包含空格
名称命名规范:
|-包名:多单词组成时所有字母都小写:xxxyyyzzz
|-类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
|-变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz
|-常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意:1.见名知意 2.不建议用汉字声明

七、变量

|-包含:变量类型、变量名、存储的值
|-作用:在内存中保存数据
|-格式:数据类型 变量名 = 变量值
注意:
|-每个变量必须先声明,后使用
|-使用变量名来访问这块区域的数据
|-变量的作用域:其定义所在的一对{}内
|-变量只有在其作用域内才有效
|-同一个作用域内,不能定义重名的变量
例:

class VariableTest {
    public static void main(String[] args) {
        //变量的定义
        int myAge = 12;
        //变量的使用
        System.out.println(myAge);


        //变量的声明
        int myNumber;
        //变量的赋值
        myNumber=1001;
        System.out.println(myNumber);
    }
}

八、数据类型

|-按照数据类型分:
|-基本数据类型:
|-整型:byte、short、int、long
|-浮点型:float(范围比long还大)、double
|-字符型:char
|-布尔型:boolean
|-引用数据类型:
|-类:class
|-接口:interface
|-数组:array
1.整型变量:
|-整型常量默认为int型,声明long型常量后面须加“l”或“L”
|-不足以表示较大的数才使用long
在这里插入图片描述
2.浮点型
|-默认值为double型,声明float常量,须后加‘f’或‘F’
在这里插入图片描述
3.char型
|-通常使用一对‘’,内部只能写一个字符
|-表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode值来表示字符型常量
4.boolean型
|-只能取两个值之一:true、false
|-常常在条件判断、循环判断中使用
例:

class VariableTest1 {
    public static void main(String[] args) {
        byte b1 = 12;
        byte b2 =-128;
        System.out.println(b1);
        System.out.println(b2);

        short s1 = 128;
        int i1 = 1234;
        long l1 = 31425689L;
        System.out.println(l1);

        double d1 =123.3;
        System.out.println(d1 + 1);
//定义float类型的变量时,变量要以"f"或者“F”结尾
        float f1 = 12.3f;
        System.out.println(f1);

        //定义char型变量,通常使用一对''
        char c1 = 'a';
        System.out.println(c1);
//表示方式:1.声明一个字符 2.转义字符 3.直接使用Unicode值来表示字符型常量
         char c5 ='\n';//换行符
         c5='\t'//制表符
         System.out.println("hello" + c5);
         System.out.println("world");

         char c6 = '\0043';//使用Unicode值
         System.out.println(c6);

         boolean bb1 = true;
         System.out.println(bb1);

         boolean isMarried =true;
         if(isMarried){
            System.out.Println("不能参加单身partt");
         }else{
            System.out.println("可以参加单身part");
         }
    }
}

九、基本数据类型之间的运算

|-自动类型提升:当容量(数的范围的大和小)小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char、short —>int—> long—> float—> double
特别的:当byte 、char、short三种类型的变量做运算时,结果为int型
|-强制类型转换:自动类型提升运算的逆运算
|-需要使用强转符:()
|-注意点:强制类型转换可能会导致精度损失
例:自动类型提升

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


        float f = b1 + i1;
        System.out.println(f);


        char c1 = 'a';
        int i3 = 10;
        int i4 = c1+i3;
        System.out.println(i4);


//***************特别的***********************
        short s2 =10;
        //char c2 = c1+s2;//编译不通过


        byte b2 = 10;
        //char c3 = c1+b2;//编译不通过


        //short s3 = b2+s2;//编译不通过


        //short s4 = b1+b2;//编译不通过
}
}

例:强制类型转换

class VariableTest3 {
    public static void main(String[] args) {
        double d1 = 12.3;
        //精度损失举例1
        int i1 = (int)d1;//截断操作
        System.out.println(i1);

        //没有精度损失
        long l1 = 123;
        short s2 = (short)l1;
        //精度损失举例2
        int i2 = 128;
        byte b = (byte)i2;
        System.out.println(b);
    }
}

例:两个特殊情况

class VariableTest4 {
    public static void main(String[] args) {
        //编码情况1:
        long l =123213;
        System.out.println(l);
        
        //编译失败:过大的整数
        //long l2 =123456789036525;
          long l2 =123456789036525L;

          //编译失败
          float f1= 12.3;

          //编码情况2:
          byte b =12;
         // byte b1 = b+1;//编译失败


         float f1 = b+12.3;//编译失败

    }
}

十、字符串类型String

|-String不是基本数据类型,属于数据引用类型
|-使用方式与基本数据类型一致,如:String str = “abc”;
|-一个字符串可以串接另一个字符串,也可以直接串接其他类型的数据,如:
str = str + “xyz”;
int n = 100;
str = str

String类型变量的使用:
|-String属于应用数据类型,翻译为:字符串
|-声明String类型变量时,使用一对“”
|-String可以和8种基本数据类型变量做运算,且只能是连接运算:+
|-运算的结果仍然是String类型
例:String练习

class StringTest {
    public static void main(String[] args) {
        String s1 = "Hello World";

        System.out.println(s1);

        String s2 = "a";
        String s3 = "";

        //char c ='';//编译不通过

        int number = 1001;
        String numberStr="学号:";
        String info =numberStr + number;//连接运算
        boolean b1 =true;
        String info1 = info + b1;//连接运算
        System.out.println(info1);


        //****************练习********************
        //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'+"*"));//*       *


    }
}

十一、进制

|-所有数字在计算机底层都以二进制形式存在
|-对于整数,有四种表示方式
|-二进制:0,1,满2进1以0b或0B开头
|-十进制:0-9,满10进1
|-八进制:0-7,满8进1,以数字0开头表示
|-十六进制:0-9及A-F,满16进1,以0x或0X开头表示。此处的A-F不区分大小写,如:0x21AF+1=0X21B0
在这里插入图片描述
在这里插入图片描述
例:进制实例

class BinaryTest {
    public static void main(String[] args) {
        int num1 = 0b110;
        int num2 = 110;
        int num3 =0127;
        int num4 =0x110A;
        
        System.out.println("num1 = "+num1);//num1 = 6
        System.out.println("num2 = "+num2);//num2 = 110
        System.out.println("num3 = "+num3);//num3 = 87
        System.out.println("num4 = "+num4);//num4 = 4362
    }
}

二进制与十进制相互转换:
|-当用二进制定义整数时其第32位是符号位;
|-当是long类型时,二进制默认占64位,第64位是符号位
二进制的整数形式:
|-原码:直接将一个数值换成二进制数。最高位是符号位
|-负数的反码:是对原码按位取反,只是最高位(符号位)确定为1
|-负数的补码:其反码加1
计算机以二进制补码的形式保存所有的整数
|-正数的原码、反码、补码都相同
|-负数的补码是其反码+1
在这里插入图片描述
十进制、二进制互转:
|-二进制转换为十进制 乘以2的幂数
|-十进制转换为二进制 除以二取余数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值