Java基础第二天

学习感受

今天学习的任务比较轻松,把基础打牢了,才能学以致用!

课堂笔记

Java程序的基本规则

  • Java的类(文件)是Java程序的最小单位,代码写在Java类文件里,一个java项目往往包含若干个类文件
  • Java类的文件名要跟类名一致,类名首字母要大写,使用驼峰命名法(如: HelloFisher ),扩展名是.java
  • main方法是Java程序运行的入口,main方法的名称、参数、前面的修饰符都是固定的
  • 每条(行)语句以分号结束
  • 方法名、变量名、属性名都是以小写字母开头,也是使用驼峰命名方式

Java程序的组成成份

分隔符号

  • ; 分号。 语句结束的标志

  • {} 大括号。 成对出现,用在类、方法、判断和循环语句。把多条语句作为一个整体(代码块)

  • () 小括号。用于方法的定义和调用,以及运算表达式的优先级。

  • [] 方括号。 用于数组,通常在数组名字之后出现

  • . 圆点。 用于对象的属性或方法的调用。

  • “” 双引号。 用于字符串

  • ‘’ 单引号。 用于字符

  • ​ 空格。 用于分割标识符以及关键字

标识符

标识符就是类、方法、属性、变量的名称。

命名规则:

1. 必须以字母、下划线(_)、美元符号($)开头
2. 除首字母之外可以用字母和数字以及下划线和美元符号
3. 不能跟关键字重名
4. 区分大小写
5. 不建议使用中文

关键字

Java中一些表示特定意义的单词叫关键字,Java的有如下关键字:

请添加图片描述

注释

注释是代码中用于帮助程序员理解或者记忆代码的内容;暂时不用的代码也可以注释掉。

注意 :注释的内容会被编译器忽略

单行注释

以//开头, 一般用于单个语句的注释

快捷键: Ctrl + /

        //打印欢迎信息
        System.out.println("Hello CQ"); //每个语句以分号结束

多行注释

以/* 开头,*/ 结束。 用于注释多行内容

快捷键: Ctrl + Shift + /

/*
        System.out.println("aaaaaaaaaa");
        System.out.println("bbbbbbbbbbbbb");
        System.out.println("cccccccccccc");
*/

文档注释

以/** 开头, */结束。 用于类,方法,它能导出为API文档

快捷输入方式: 输入/**, 然后回车

JDK API文档地址:

官方英文: https://docs.oracle.com/javase/8/docs/api/

中文: https://tool.oschina.net/apidocs/apidoc?api=jdk-zh

/**
 * 这是学习Java的第一个类
 */
public class Hello {
    /**
     * 启动方法
     * @param args 参数
     */
    public static void main(String[] args) {
  • IDEA导出文档注释为API文档
  1. 创建一个目录存放API文档。 比如:桌面上创建一个myapi目录
  2. 点击tools -> generate JavaDoc…

请添加图片描述
2731766.png)]

  1. 设置

请添加图片描述

  1. 点击ok, 导出文档

变量

方便访问内存中的数据而起的一个程序员容易记忆和理解的一个名字。

比如饭店包间,如果用编号608, 606(类似内存地址), 为了方便理解记忆,用地名朝天门(608),洪崖洞(606), 朝天门和洪崖洞在程序里称为变量

定义变量

语法: 类型 变量名;

​ 类型 变量名 = 初始化的值;

​ 类型 变量名, 变量名;

String stuName = "张三"; //=是赋值的意思,  把张三字符串赋给stuName这个变量
int stuAge = 22;

int i; //定义变量,不赋值(没有初始化)

int m, n;//一次定义多个变量,用逗号分割,多个变量必须是相同类型
int a = 3, b = 2; //一次定义多个变量,也可以在定义的同时赋值 

变量初始化

可以在定义变量的时候初始化,也可以先定义再初始化

变量的赋值和使用

System.out.println("学生的姓名:" + stuName); //+字符串的拼接
System.out.println("学生的年龄:" + stuAge);  //字符串和数字相加,也是拼接
System.out.println(i + j); //两个数字相加, 是加法运算

int k;
k = i; //给变量赋值可以用另外一个变量
k = 3 + 2; //变量赋值还可以用表达式
k = i - j;  //变量赋值可以变量参与的表达式
System.out.println(k); //-2,  int类型叫整形, 包括正整数,0, 负整数

注意

  • 同一个作用域不能重复定义变量
 int i; //定义变量,不赋值(没有初始化)
 i = 8;

//在同一个作用域(同一个大括号内)不能重复定义同名的变量
//        int i = 5;
  • 变量在使用前必须初始化(赋值)
        int c;
        //变量在使用前必须要先初始化(赋值)
//        System.out.println(c); 

练习: 判断以下变量命名是否合法

int 123;   //错误,变量不能用数字开头
int _123;  //正确, 以下划线开头
int $abc;   //正确,$开头
int _$;     //正确, 不推荐,没有意义
int _;     //正确, 不推荐,没有意义
int $;    //正确, 不推荐,没有意义
int abc_123;  //正确
int a$1;     //正确
int _#$%;   //错误, 变量不能包含除_ , $之外的其他特殊符号
int 朝天门;   //正确,语法没有问题,但是不推荐
int StuName;  //正确, 但是不符合命名规范,应改为stuName
int stuname;  //正确, 不符合命名规范,应该改为stuName;

Java的基本数据类型

请添加图片描述

整形

  • byte

​ 一个字节长度, 取值范围-2 7 ~ 27 -1 (-128 ~ 127)

        byte b1 = 10;
        System.out.println(b1);
//        byte b2 = -129; //超过范围,报编译异常
//        byte b3 = 128; //超过范围,报编译异常
  • short

    占两个字节长度, 取值范围-215 ~ 215 -1 , (-32768 ~ 32767)

        short s1 = -100;
        System.out.println(s1);
//        short s2 = -32769; //超过范围,报编译异常
//        short s3 = 32768;  //超过范围,报编译异常
  • int

    占四个字节长度, 取值范围-231 ~ 231 , (-2147483648 ~ 2147483647)

    int的十进制数只有10位长度,不能存放手机号码的。

  • long

    占八个字节, 取值范围-263 ~ 263-1, 19位的十进制数

    注意:给long类型变量赋值,数字后面要加L(尤其是超过int范围必须要加)

       long l1 = 100L;
            System.out.println(l1);
            //给long赋值的时候,如果数字超过int范围,必须要加L, 如果没超过int可加可不加
            long l2 = 2147483648L; 
            System.out.println(l2);
    
    		//当前时间的时间戳(相对于1970.1.1 0时过去了多少毫秒)
            System.out.println(System.currentTimeMillis());
    

注意: 给整数赋值可以用十进制,八进制,十六进制

//        java里可以用十进制, 八进制,十六进制的数字给整形赋值
        int n = 100;  //十进制赋值
        System.out.println(n);
        n = 0144;   //八进制数赋值, 以0开头是八进制
        System.out.println(n);
        n = 0x64;  //十六进制赋值, 以0x开头是十六进制
        System.out.println(n);

浮点型(小数)

  • float

    占4个字节

     float f1 = 3.1F; //java里面直接写一个小数,默认为double
            System.out.println(f1);
            float f2 = 2.5F;
            System.out.println(f1 * f2);
    
  • double

    占8个字节

     double d1 = 3.1415;
     System.out.println(d1);
    

注意:java里浮点数运算可能会损失精度(结果不精确),在实际项目中如果用到小数的运算(比如财务系统),建议用BigDecimal

字符类型(char)

字符用16位的unicode编码,所以可以表示各国语言文字。

  • 字符的表示方式:
  1. 字符用单引号括起来。

  2. 用unicode编码,格式’\uxxxx’。中文汉字在unicode中的范围4E00 ~ 9FA5

  3. 用转义符表示特殊字符

\"双引号
\’单引号
\n换行
\r回车
\t制表符
\\反斜杠
       char c1 = 'a';
        System.out.println(c1);
        char c2 = '中'; //因为是用的unicode,所以能表示任何语言的字符
        System.out.println(c2);
        char c3 = '\u4E01'; //用unicode方式描述一个字符
        System.out.println(c3); //丁
        System.out.println("某某说:\"你好\"。");
        System.out.println("\n"); //换行
        System.out.println("\r");  //回车
        System.out.println("\t");  //制表符(tab键空出来的位置,4个空格)
        System.out.println("\'");  //单引号
        System.out.println("\\");  //  反斜杠
  • 用数字来表示字符
       char a = 97; //常见的英文字符都对应一个数字编码,所以可以用数字给char类型赋值
        System.out.println(a);

ascii码表规定每个字符对应的数字:

请添加图片描述

布尔类型(boolean)

占1位长度,只有两种值: true 和 false, 不能用数字给boolean类型赋值。

布尔类型一般用于判断或循环语句判断条件

        boolean b2 = true;
        boolean b3 = false;
        System.out.println(b2);
        System.out.println(b3);

基本类型相互转换

自动转换

请添加图片描述

  • char不能自动转为short
  • byte不能自动转为char
  • 任何的基本类型都可以跟字符串进行拼接
        byte by1 = 10;
        short s1 = by1; //by1自动转换为short, 赋给s1变量
        int i1 = s1; //自动转换short为int
        System.out.println(i1);
        char c1 = 'a';
        i1 = c1; //自动转char为int
        System.out.println(i1);
        long l1 = i1; //自动转换int为long
        System.out.println(l1);
        float f1 = l1; //自动转换long为float
        System.out.println(f1);//结果为:97.0
        double d1 = f1; //自动转换float为double
        System.out.println(d1);

强制转换

  • 长度大的数据类型转小的类型不能自动转换,要用强制转换
  • 小数转整数,会去掉小数
  • 如果强转超过类型所能表示的范围,可能会出现不可预知的结果
        double d2 = 3.14;
        float f2 = (float) d2; //变量前面加一对小括号,小括号里面是一个类型,这种就叫强制类型转换
        System.out.println(f2);
        long l2 = (long) f2;  //浮点数强制转换为整数,直接去掉小数部分
        System.out.println(l2);
        int i2 = (int) l2;
        char c2 = (char) i2;
        System.out.println(c2);
        short s2 = (short) i2;
        byte b2 = (byte) s2;

        int i3 = 168;
        //超过目标类型范围的强制类型转换要谨慎,可能出现不可预知的结果
        byte b3 = (byte) i3; 
        System.out.println(b3);//结果是 -88

控制台输入内容

 		Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s = scanner.next(); //等待用户从控制台输入字符串
        System.out.println(s);

        System.out.println("请输入一个整数:");
        int i = scanner.nextInt(); //等待用户从控制台输入整数
        System.out.println(i);

作业

  1. 列出你所知道的java的关键字
    答:public、static、void、new、class 、int 、import、char 、double、float、long、short、byte、private、extends、for、break、continue、do、while、if、else、switch、return、try、catch、true、false、this、null。
  2. Java程序有哪些注释方式,分别用于什么场景
    答:
    (1)单行注释:以//开头,用于注释一个语句
    (2)多行注释:Ctrl+/,用于注释多行语句
    (3)文档注释:/* … */,用于注释文档
  3. 列出5个错误的变量名
         int  543;
         int  !a;
         double  @cc;
         float  &_23;
         int  ?_de;
  1. 控制台输入一个圆的半径,计算圆的面积并打印结果。
    ​ (提示 : 3.14 * r * r )
public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    System.out.println("请输入圆的半径:");
    int r=scanner.nextInt();
    double s=r*r*3.14;
    System.out.println("圆的面积为:"+s);
}
  1. 控制台输入一个人名,打印欢迎信息: “你好: 张三”。
    ​ (提示: 打印 “你好:” + name)
public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    System.out.println("请输入你的名字:");
    String name=scanner.next();
    System.out.println("你好:"+name+"!");
}

6.控制台输入两个整数, 计算两个整数的和, 并打印结果。

6.控制台输入两个整数, 计算两个整数的和, 并打印结果。
public static void main(String[] args) {
    Scanner scanner=new Scanner(System.in);
    Scanner scanner1=new Scanner(System.in);
    System.out.println("请输入第一个整数:");
    int number1=scanner.nextInt();
    System.out.println("请输入第二个整数:");
    int number2=scanner1.nextInt();
    int number3=number1+number2;
    System.out.println(number1+"+"+number2+"="+number3);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值