黑马程序员Java-基础语法day2笔记(注释、字面量、变量、标识符、Debug、数据类型、进制、Java常量优化机制)

目录

JDK组成

JAVA的跨平台性

注释

单行注释

多行注释

文档注释

调整注释颜色

字面量

练习:网站展示歌曲信息,用java实现

变量

格式

变量的注意事项

Debug

标识符

命名规则

命名规范

数据类型

键盘录入Scanner

笔记

例题

答案 

运算符

笔记

例题

答案

 字符串连接

自增自减运算符

类型转换

隐式转换

强制转换

进制

类型转换面试题


JDK组成

  1. JDK(Java Development Kit)Java程序开发的工具包=JRE+开发工具
  2. JRE(Java Runtime Environment)Java的运行环境=JVM+核心类库
  3. JVM(Java Virtual Machine)Java虚拟机,真正运行Java程序
  4. 核心类库:java自己写好的程序

JAVA的跨平台性

Java源文件经过JDK中的编译器编译成字节码文件(.class),然后在JRE中的JVM虚拟机解释执行,因为每个操作系统的内核各不相同,所以每个操作系统都会安装属于自己操作系统的JVM虚拟机。

注释

  • 单行注释

格式://code

  • 多行注释

格式:/*

                code

           */

  • 文档注释

格式:/**

                code

            */

调整注释颜色

打开设置——配色方案——语言默认设置——点击三个注释(其中文档注释里面有个文本)——点击前景右面的颜色矩形,选择喜欢的颜色,最终点确定即可

关键字不能直接拿来使用

字面量

数据在程序中的书写格式

练习:网站展示歌曲信息,用java实现

public class constant_test {
    public static void main(String[] args) {
        System.out.println("老鹰乐队(Eagles)");
        System.out.println("流行");
        System.out.println("选集");
        System.out.println("CD");
        System.out.println(3);
        System.out.println(9.8);
    }
}

变量

内存中的存储空间,空间中存储着经常发生改变的现象

格式

数据类型 变量名 = 数据值 ;

public class variable {
    /*
            数据类型 变量名 =数据值;
            整数类型  int
     */
    public static void main(String[] args) {
        int salary = 10000;
        System.out.println(salary);
        salary = 5000;
        System.out.println(salary);

        int age = 18;
        System.out.println(age);            
    }
}

变量的注意事项

public class variable_demo {
    /*
        变量的注意事项:
        1、变量名不允许重复定义
        2、一条语句,可以定义多个变量,中间需要逗号分割
        3、变量在使用之前必须赋值
        4、TODO:变量的作用域
     */
    public static void main(String[] args) {
        int salary=12000;
//      1、变量名不允许重复定义
//        int salary=15000;
        System.out.println(salary);

//      2、一条语句,可以定义多个变量,中间需要逗号分割
        int a=10,b=20,c=30;

//      3、变量在使用之前必须赋值
        int num;
        num=10;
        System.out.println(num);
    }
}

TODO是代做任务

Debug

查看程序的执行流程,也可以用于追踪程序执行过程调试程序

右键点小虫子,然后需要加断点,才能在debug模式下,追踪程序执行到断点行

左边是线程,main表示现在执行主方法,第十行;右面是变量,表示salary整数变量现在值为5000

打多个断点,可以用来测试两个断点中间范围内的代码运行效果

在第一个断点debug的时候点击这个绿色小箭头就可以跳转到下一个断点,且中间的代码已被执行

标识符

类、方法、变量等起名字的符号

命名规则

不能是关键字、不能是数字开头、区分大小写,只能由数字、字母、下划线、美元符号组成

class是关键字不可以,但Class可以

命名规范

见名知意

小驼峰:给变量起名字

一个单词,所有字母小写——name

多个单词组成,第二个单词开始,首字母大写——firstName

大驼峰:给类起名字

一个单词,首字母大写——Name

多个单词,每个单词的首字母都大写——FirstName

数据类型

1、基本数据类型
    整数
        byte    1个字节    -128-127 10000000——01111111
        int     4个字节
        short   2个字节
        long    8个字节
    小数
        float   4个字节
        double  8个字节
    字符
        char    2个字节(也可以写数值0-65535)
    布尔
        boolean    1个字节
2、引用数据类型
    字符串 String

----------------------------------------------------
使用思路:
    1、使用整数类型首选int,装不下了就用long,定义long类型需要加入L的标识
    2、使用小数类型首选double,非要用float类型,需要加入F标识

键盘录入Scanner

笔记

import java.util.Scanner;
//引入jdk-lib-src-java-util-Scanner.java,一定写在class的上面

public class scanner {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//sc是变量名
        int age = sc.nextInt();//定义整数类型变量接受键盘输入的整数
        double height = sc.nextDouble();//从键盘录入小数,用double类型变量接收
        boolean flag =sc.nextBoolean();//从键盘录入布尔,用boolean类型接收
        String name =sc.next();//从键盘录入字符串,用String接收
    }
}

例题

答案 

import java.util.Scanner;
public class scannertest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您的姓名:");
        String name =sc.next();
        System.out.println("请输入您的年龄:");
        int age =sc.nextInt();
        System.out.println("请输入您的性别:");
        String gender =sc.next();
        System.out.println("请输入您的身高:");
        double height =sc.nextDouble();
        System.out.println("请输入您的婚姻状况:");
        boolean marriage =sc.nextBoolean();
        System.out.println("注册成功!");
    }
}

运算符

笔记

/两边整数就取结果的整数部分,有一边是小数,结果就是具体的小数

%为取余符号

例题

数值拆分

答案

import java.util.Scanner;

public class operatordemo {
    public static void main(String[] args) {
        //输入一个三位数并接收
        System.out.println("请输入一个三位数:");
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        //拆个位
        int gewei =number%10;
        //拆十位
        int shiwei =number/10%10;
        //拆百位
        int baiwei =number/10/10%10;
        //当+号的一边遇见了字符串,此时的含义为字符串连接符
        System.out.println("该三位数"+number+"的个位为:"+ gewei);
        System.out.println("该三位数"+number+"的十位为:"+ shiwei);
        System.out.println("该三位数"+number+"的百位为:"+ baiwei);
    }
}

 字符串连接

“5+5=”+5+5

+号左右两边有字符串,则把5加入左边的字符串

第一步——“5+5=5”+5

第二步——“5+5=55”

自增自减运算符

++和--

++在前:先自增,后操作

++在后:先操作,后自增

b=a++意思就是第一步b=a,第二步a++

        int a =3;
        int b=(++a)+(a++)+(a*10);

a最后为5,自增两次;b最终为58,a先自增,然后传递到第二个小括号,最终以5传递给第三个小括号

类型转换

隐式转换

取值范围小的数值或者变量直接赋值给另一个取值范围大的变量

  • 在两者进行运算时,如果数据类型不统一,小的会先提升给大的再进行运算、
  • byte、short、char在进行运算的时候,会先提升为int,再运算

强制转换

取值范围大的数值或变量不能直接赋值给取值范围小的变量

有可能会出现精度损失

进制

十进制默认

二进制0b开头

八进制0开头

十六进制0x开头

计算机在运算的时候都是以补码的形式在运算

  • 正数的原码与反码、补码相同
  • 负数的负码是原码逐位取反,符号位不变
  • 负数的补码是反码末尾加1
  • 负数的补码反推原码就是符号位不变,逐位取反。末尾加一

例如:

        int num1=130;
        //num1=00000000 00000000 00000000 10000010 int四个字节
        byte num2=(byte)num1;
        //num2的补码=10000010 byte1个字节
        //num2的原码=11111101+1=11111110=-126
        System.out.println(num2);
        //num2=-126

类型转换面试题

        /*
        类型转换面试题:
            下面代码是否有错误,若有则改正
            byte b1=3;
            byte b2=4;
            byte b3=b1+b2;
         */
        byte b1=3;
        byte b2=4;
        //byte在运算的时候会转化为int类型,所以要么int b3,要么把b1+b2的结果转化为byte类型
        int b3=b1+b2;
        byte b4=(byte)(b1+b2);
        System.out.println(b3);
        System.out.println(b4);
        //byte bb =3+4; 会出错吗?
        byte bb =3+4;
        System.out.println(bb);

上面为什么没有报错呢,是因为Java存在常量优化机制:在编译(javac)的时候就会对3和4这两个字面量进行运算,所以字节码文件运行的时候实际为:byte bb = 7;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值