JavaSE基础过

第一个Java程序

package Practice;//Tips:Eclipse创建类的时候必须要有package,用于区分同名的类

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

注释

//单行注释
/* 多行注释 */
/** @文档注释(能够被识别) */

一、标识符

什么是标识符

Java中所有的变量名、类名和方法名都叫做标识符,标识符就是给类、方法、变量起的名字。

标识符是以字母、下划线、美元符号开头,后面可以跟字母、下划线、美元符号、数字的一个字符序列。

命名规则
  • 以字母、下划线( _ )、美元符号( $ )开头

  • 由字母、下划线( _ )、美元符号( $ )、数字组成

  • 不能是关键字

  • 区分大小写,例:myName 和 myname 是两个不同的标识符

命名规范

起名字要见名知意,可以使用对应意思的英语单词来命名。

在编程中,我们最常用的命名方式有驼峰命名法等。

小驼峰命名法

适用于方法、变量等;

当标识符是一个单词的时候,全部小写,例:name、sex、student

当标识符由多个单词组成时,第一个单词小写,其他单词首字母大写,例:firstName

大驼峰命名法

适用于类名等;

当标识符是一个单词的时候,单词首字母大写,例:Student、Teacher

当标识符由多个单词组成时,每个单词的首字母都要大写,例:GoodStudent、BadStudnet

二、关键字

什么是关键字

关键字就是在编程语言中被赋予了特定涵义的英文单词,Java 中一共有 53 个关键字。

特点
  • 全部字母都是小写

  • 在常用的代码编辑器中,关键字有特殊的颜色标记

  • 不能作为用户标识符使用

tips:String不是一个关键字,它是一个类。

三、字节

bit(位)

计算机内部 数据储存 的最小单元。 eg:10110101是一个八位(bit)的二进制数

byte(字节)

计算机中 数据处理 的基本单位。 1B = 8 bit

character(字符)

计算机中使用的字母、数字和符号。

1KB = 1024 B (2^10) 1MB= 1024 KB 1GB= 1024 MB

电脑32位和64位的区别

32位的电脑只支持32位的操作系统,支持4GB的内存。

64位的电脑支持32位或者64位的操作系统,能支持128GB的内存。

四、数据类型

Java是一门强类型语言,所有变量都必须先定义后使用

Java的数据类型分为两类:基本数据类型和引用数据类型。

基本数据类型(primitive type)
引用数据类型(reference type)

五、数据类型拓展

整型

二进制 无表示;

八进制度 int a = 010;

十六进制 int a = 0x10;

浮点型

避免使用浮点型进行比较!!!!!

案例

package Practice;

public class Hello {
    public static void main(String[] args) {
        //如何表示银行业务?
        float f = 0.1f;//必须要有f
        double d = 1.0/10;
        
        System.out.println(f);//0.1
        System.out.println(d);//0.1
        System.out.println(f==d);//false
        
        float d1 = 12345789f;
        float d2 = d1 + 1;
        System.out.println(d1);//
        System.out.println(d2);
        System.out.println(d1 == d2);//false

        float d3 = 123457891f;
        float d4 = d3 + 1;
        System.out.println(d3);
        System.out.println(d4);
        System.out.println(d3 == d4);//ture
    }
}
字符型

所有的字符本质都是数字!!!

        char c1 = 'A';
        char c2 = '言';
        System.out.println(c1);
        System.out.println((int)c1);//65   
        System.out.println(c2);
        System.out.println((int)c2);//35328

        char c3 = '\u0061';
        System.out.println(c3);//a

Unicode(统一码)

它为每种语言中的 每个字符 设定了 统一并且唯一 的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

编码范围:U0000 ~ UFFFF (十六进制表示)

统一码中包含ASCII码,统一码的 '\u0000' ~ '\u007F' 对应ACSII中全部128个字符。

ASCII码(美国标准信息交换码)

大多数计算机采用ASCII码,它是表示所有大小写字母、数字、标点符号和控制字符的7位编码方案。共定义了128个字符。

        String a = new String("hello word");
        String b = new String("hello word");
        System.out.println(a==b)//false

        String a1 = "hello word";
        String b1 = "hello word";
        System.out.println(a1==b1);//true

六、类型转换

不同类型的数据进行运算,必须先转换为同一类型的数据,再进行运算。

byte ---> char ---> short --->int --->long --->float --->double
低----------------------------------------------------------------->高
强制类型转换

高类型 转换到 低类型。

自动类型转换

低类型 转换到 高类型。

package Practice;

public class Exercise {
    public static void main(String[] args) {
        //强制类型转换
        int a = 127;
        byte b = (byte)a;
        System.out.println(b); //127
        
        int a1 = 128; //内存溢出
        byte b1 = (byte)a1;
        System.out.println(b1);//-128
--------------------------------------------------------------------
        int n = 10_0000_0000;
        int m = 20;
        int total1 = n * m;
        long total2 = n * m;//先得出int的结果,再转换为long
        long total3 = n * (long)m;
        
        System.out.println(total1);//-1474836480
        System.out.println(total2);//-1474836480
        System.out.println(total3);//20000000000
    }
    //只需要转换其中一个数据的类型即可,total会自动按照n和m中较高类型的输出结果
    //如果是byte,short,char的运算,会先自动转换为int型再运算
}

七、变量

定义

可以变化的量,主要有三要素(变量名变量类型变量作用域)。

命名规范

类成员变量名、局部变量名、方法名:首字母小写+驼峰原则 niceGirl

类名:首字母大写+驼峰原则 NiceGirl

八、常量

定义

一旦初始化,就不会改变的量。

命名规范

大写字母+下划线 NICE_GIRL

九、运算符

算术运算符:+ , - , * , / , % , ++ ,--

赋值运算符:=

关系运算符:> , < , >= ,<= , == , != , instanceof

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

位 运算符:& , | ,^(异或) , ~(取反) , >> , <<

条件运算符:?: x ?: y,z如果 x 为 true,则返回 y ;否则,返回 z 。

拓展运算符:+= , -= ,*= ,/=

package Practice;

public class Exercise {
    public static void main(String[] args) {
        int a = 1;
        
        System.out.println(a++);
        System.out.println(++a);
        
        //a++    执行完该行代码后,再自增
        //++a    先自增,再执行这一段代码
    }   
}

字符串连接符+

package Practice;

public class Exercise {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        
        System.out.println(a + b + " really ");//30 really 
        //如果字符串在后面,会先对a+b进行运算,再输出字符串
        
        System.out.println(a + " really " + b);//10 really 20
        System.out.println(" really "+ a + b);// really 1020
        //如果字符串在前面或中间,会将a和b转换为String类型,再拼接输出
        
    }   
}
优先级

( )的优先级最高;

十、包机制

什么是包机制

用于区分类名的命名空间。

命名规范

一般使用倒置的公司域名为package命名

Tips:同一个文件里的两个包中的类名不能重复

十一、JavaDoc生成文档

作用

用于生成自己的API文档。

参数信息
package ...
    
import ...

/**
*@author 作者名
*@version 版本号
*@since 需要使用的最早版本的jdk版本
*@param 参数名
*@return 返回值情况
*@throws 抛出异常情况
*/

十二、Scanner对象

作用

一种可以实现程序和人的交互的工具类,通过Scanner对象获取用户的输入。

和C语言中的scanf作用类似。

基本语法

Sccaner 对象名 = new Sccaner(System.in);

使用说明

先通过使用hasNext( )或hasNextLine( )方法判断用户是否输入数据。

再通过Sccaner工具类中的next( )或nextLine( )方法获取输入的字符串。

最后使用Sccaner对象名.close()

next()方法无法得到带空格的字符串,以空白符作为结束,会自动去除有效字符前的空白符。

nextLine()方法可以获得空格,以Enter键作为结束。

案例
package com.Irvine.Scanner;
import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  //创建一个扫描器对象
        if(scanner.hasNext()){  //判断用户是否在键盘上输入了数据
            String str = scanner.next();  //接受用户输入的数据并存在str中
            System.out.println("Output: "+ str);
        }
        scanner.close();  //关闭扫描器,以防浪费内存
    }
}
package com.Irvine.Scanner;
import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  //创建一个扫描器对象
        if(scanner.hasNextLine()){  //判断用户是否在键盘上输入了数据
            String str = scanner.nextLine();  //接受用户输入的数据并存在str中
            System.out.println("Output: "+ str);
        }
        scanner.close();  //关闭扫描器,以防浪费内存
    }
}
package com.Irvine.Scanner;
import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        float f = 0.0f;

        if(scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("这是一个整数" + i);
        } else{
            System.out.println("这不是一个整数");
        }

        if(scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("这是一个小数" + f);
        } else{
            System.out.println("这不是一个小数");
        }
    }
}
package com.Irvine.Scanner;
import java.util.Scanner;

public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = 0;
        double sum = 0;

        while(scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            n++;
            sum += x;
            System.out.println("输入了第"+n+"个数据"+x);
        }
        System.out.println(n+"个数据的总和为"+ sum);
        System.out.println("数据的平均值为"+ sum/n);
    }
}

十三、分支与循环结构

分支结构

if单选泽,if-else双选择,if-else...if-else多选择, switch

循环结构

for,while,do...while

while和do while的区别

while先判断后执行

do...while先执行后判断,保证至少有一次循环被执行

增强for循环
作用

主要用于遍历数组和集合

格式

for(声明语句:表达式){ 代码句子; }

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型一致

表达式:要访问的数组名/返回值是数组的方法。

声明语句
package com.Irvine.Struct;

public class strengthFor {
    public static void main(String[] args) {
        int[] num = {10,20,30,40,50};
        for(int i:num){
            System.out.print(i + "\t");
        }
    }
}

十四、控制流程语句

break

终止整个语句块{ }的执行,终止整层循环。

continue

跳过某个循环语块的某一次执行,终止一次循环。

return

直接结束整个方法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值