【Java】自学日记-Day2 Java基础语法1-注释、标识符和数据类型

第一个代码

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

今天我们学习内容主要是:注释,标识符,和数据类型

Java基础语法:

注释:

标注解释,不会被执行,是写给人看的,使人更容易理解代码,我们要养成注释的好习惯哟。

三种注释:

单行注释
多行注释
文档注释

public class HelloWorld {
    public static void main(String[] args) {
        //单行注释用“//"
        //输出一个HelloWorld
        System.out.println("Hello World");
    }
}
/* 多行注释 */
//JavaDoc文档注释,可以加参数
/**@Description HelloWprld
 * @Athor 小闫同学
 *
 */
 //在网上找了一个有趣的代码注释,嘿嘿,侵删。
 /***
 * ░░░░░░░░░░░░░░░░░░░░░░░░▄░░
 * ░░░░░░░░░▐█░░░░░░░░░░░▄▀▒▌░
 * ░░░░░░░░▐▀▒█░░░░░░░░▄▀▒▒▒▐
 * ░░░░░░░▐▄▀▒▒▀▀▀▀▄▄▄▀▒▒▒▒▒▐
 * ░░░░░▄▄▀▒░▒▒▒▒▒▒▒▒▒█▒▒▄█▒▐
 * ░░░▄▀▒▒▒░░░▒▒▒░░░▒▒▒▀██▀▒▌
 * ░░▐▒▒▒▄▄▒▒▒▒░░░▒▒▒▒▒▒▒▀▄▒▒
 * ░░▌░░▌█▀▒▒▒▒▒▄▀█▄▒▒▒▒▒▒▒█▒▐
 * ░▐░░░▒▒▒▒▒▒▒▒▌██▀▒▒░░░▒▒▒▀▄
 * ░▌░▒▄██▄▒▒▒▒▒▒▒▒▒░░░░░░▒▒▒▒
 * ▀▒▀▐▄█▄█▌▄░▀▒▒░░░░░░░░░░▒▒▒
 * 我是单身狗,我就这样默默地看着你们秀恩爱,我一句话也不说。
 */

标识符

Java所有的组成部分都需要名字,无论是类名,变量名还是方法名,都被称作标识符。

关键字:名字

public
class
static
void

标识符注意事项:

必须以字母“A-z”,美元符“$”,或者下划线“_”开头,后面可以是字母、美元符、下划线、数字或任何字符组合,不能使用关键字作为变量名和方法名。
标识符是大小写敏感的,区分大小写!
可以使用中文命名,但不建议。

数据类型:

Java是一种强类型语言,规范非常严格,要求变量的使用严格规范,所有的变量都必须先定义后使用。
好处:安全性高
缺点:速度慢
弱类型语言:可以不符合规定VB、JS
数据类型

基本类型(primitive type)
public class Demo02 {
    public static void main(String[] args) {
        //八大基本数据类型

        //整数
        int num1 = 10;//最常用
        byte num2 = 20;
        short num3 = 30;
        long num4 = 40L; //Long类型数字后面要加L

        //浮点数
        float num5 = 50.1F;//float类型要在数字后面面加F
        double num6 = 3.141592653549798;

        //字符
        char name = 'a';//一个字
        char name1 = '闫';
        //字符串,String不是关键字,类
        String name2 = "小闫同学";

        //布尔值
        boolean flag1 = true;
        boolean flag2 = false;
    }
}

常见问题:

public class Demo03 {    //常见问题
    public static void main(String[] args) {
        //整数拓展:进制问题
        //java中用小前缀
        // 二进制以0b开头 十进制 八进制 0 十六进制 0x
        int i = 10;
        int i2 = 010;//八进制0
        int i3 = 0x10; //十六进制 0x   0~9 A~F

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("==================");

        //浮点数拓展   eg:银行业务怎么表示,钱?——以后会学习:BigDecimal 数学工具类
        //float  表现的字长有限,但是数除出来是无限的,离散,舍入误差,由于很多数字无法准确表示,只能用约数表述,只能接近但不能于
        //double
        //最好完全《避免》使用浮点数进行比较!!!

        //观察下面面两组代码运行结果:
        float f = 0.1f; //0.1
        double d = 1.0/10; //0.1

        System.out.println(f==d);   //判断f和d是否相等  false
        System.out.println(f);
        System.out.println(d);
        System.out.println("==================");

        float f2 = 2334234234324f;
        float d2 = f2 + 1;

        System.out.println(f2 == d2);  //ture
        System.out.println(f2);
        System.out.println(d2);
        System.out.println("==================");

        //字符拓展
        char c1 = 'a';
        char c2 = '言';
        System.out.println(c1);
        System.out.println((int)c1);//强制类型转换

        System.out.println(c2);
        System.out.println((int)c2);
        System.out.println("==================");
        //强制转换可以把字符变成数字->所有的字符本质都是数字
        //单引号表示字符常量 char类型编码 Unicode编码可以处理各种语言的问题,占用2个字节
        // Unicode支持的基本字符上限是65536个
        //Excel表格最早也只有65536这么长

        //U0000 UFFFF 正常的Unicode编码
        char c3 = '\u0061';
        System.out.println(c3);//a
        // Java会查Unicode表里面的字符
        //我们平时人性化表达可以不这样写,按照上面的方式写就好啦
        System.out.println("==================");

        //==================================================
        //鬼马少女突然想到可以用代码小小表白一下
        //首先我们查一下想要表达的汉字在Unicode表中的编码
        //查找的过程就不和大家分享了,举一反三,小学生都会啦~
        //接下来我们对这些数字进行类型转换,就可以得到想要的汉字啦~
        int x1 = 35328;
        System.out.println((char)x1);
        int x2 = 35821;
        System.out.println((char)x2);
        int x3 = 38515;
        System.out.println((char)x3);
        int x4 = 25105;
        System.out.println((char)x4);
        int x5 = 29233;
        System.out.println((char)x5);
        int x6 = 20320;
        System.out.println((char)x6);
        //这段代码的结果就是小闫同学的新声,哈哈哈


        //转义字符
        //\t 制表符
        //\n 换行
        //......小闫后面会专门写一篇关于转义字符的Blog
        System.out.println("I\tlove\tyyc\neveryday\tand\tnight");
 
        String original;
        String sa = new String("hello,world");
        String sb = new String("hello,world");
        System.out.println(sa == sb);
        
        String sc = "hello world";
        String sd = "hello world";
        System.out.println(sc == sd);
        //对象 从内存分析 眼睛看到一样的东西,但是在内存上是不一样的

        //布尔值扩展
        boolean flag = true;
        if(flag == true) {}
        if(flag){}          //默认括号里面在判断值是否为真
        //less is more!代码要精简易读
    }
}
引用类型(reference type)

除了基本类型,都是引用类型。

类型转换:

因为Java是强类型语言,所以运算的时候要进行类型转换。
整型和字符串、常量之间可以进行运算,运算时,不同类型要先进行转换。
低-------->高
byte-short-char-int-long-float-double

转换方法:

强制转换(高-低):(类型)变量名
自动转换(低-高)

代码实例:

public class Demo04 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //内存溢出,转换的时候尽量避免

        //强制转换   (类型)变量名 高-低
        System.out.println(i);
        System.out.println(b);

        //自动转换    低-高
        double c = i;
        System.out.println(c);

        System.out.println((int)4.13); //4
        System.out.println((int)-3.09f); //-3
        
        /*注意事项:
        1.不能对布尔值进行转换
        2.不能吧对象转换成不相干的类型
        3.在把高容量转换成低容量的时候,强制转换!
        4.转换的时候可能会遇到内存溢出,或者 精度 问题!
         */
         
        System.out.println("===============");
        char e = 'a';
        int d = e+1;
        System.out.println(d);
        System.out.println((char)d);   //b


    }
}

内存溢出如何处理:

public class Demo05 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割,下划线不会被识别
        int money = 10_0000_0000;
        int year = 20;
        int total1 = money*year; //计算的时候内存溢出了
        long total2 = money*year; //默认是int类型,转换之间已经存在问题了,所以用这个方法不可行
        System.out.println(total1);
        System.out.println(total2);
        //正确做法:
        long total3 = money*((long)year); //运算前就把数据转换
        System.out.println(total3);
        long total4 = ((long)money)*year;
        System.out.println(total4);
        //L l 用大写字母表示不容易看错
    }
}

变量:

变量就是可以变化的量。
变量代表一块内存空间,空间的位置是确定的,但里面具体村什么东西不确定,所以叫变量。
内存本身就存在,我们人为规定了内存指定的空间应该放什么,这就是数据类型,我们为了区分每个数据类型中具体的个体就要给他们取名字,这就是变量名。
【又来强调了,Java是强类型语言,每个变量都必须声明类型!】
Java变量是程序中最基本的存储单元,其要素包括【变量名】,【变量类型】和【作用域】。

type varName [=value] [{,varName[=value]}];
//数据类型 变量名 = 值;可以用逗号隔开来声明多个同类型变量。

不仅建议在一行定义多个同类型变量,视觉上就会很繁琐。

public class Demo06 {
    //定义变量
    public static void main(String[] args) {
        //int a = 1, b = 2, c = 3; 不建议这么写
        //写程序的时候要注重程序的可读性
        String name = "yan";
        char x = 'x';
        double pi = 3.14;
    }
}
注意:

1.每个变量都有【类型】,类型可以是基本类型,也可以是引用类型。
前面用过的String是引用类型。
2.变量名必须是合法标识符。
3.变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量作用域:

public class Demo07 {
    //变量作用域
    static int allClicks=0;           //类变量
    String str="hello world";        //实例变量

    public void method(){
        int i = 0;                   //局部变量
    }
}

类变量

写在类里面的,需要加关键词stastic,静态的

实例变量

写在类中间

局部变量

写在方法里面的

public class Demo08 {                       //类
    //属性:变量
    //类变量  加static关键词,它就从属类了
    //类变量随类一起出现一起消失
    static double salary = 2500;

    //实例变量:从属于对象;如果不自行初始化,会变成这个类型的默认值
    //作用域更大了,在类里面,方法外面。
    //定义一个变量就可以用,不用初始化
    String name;   //默认值 字符串变量初始化是16位的0:u0000
    int age;       //数值类型初始值一般是0(int)或0.0
    boolean flag;  //默认值是false
    char yyc;      //默认值是空格

    //main方法
    public static void main(String[] args) {

        //局部变量;使用前必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //使用实例变量:
        //变量类型 变量名字 = new Demo08();
        //生成对象的快捷键 Alt+Enter
        Demo08 demo08 = new Demo08();
        System.out.println(demo08.age);   //0
        System.out.println(demo08.name);  //null
        System.out.println(demo08.flag);  //false
        System.out.println(demo08.yyc);   //空格

        //类变量
        System.out.println(salary);

    }

    //其他方法
    public void add(){
        //System.out.println(i); //无法输出,因为i是局部变量
    }

}

变量命名规范

1.变量、方法、类名:见名知意
2.类成员变量:
首字母小写+驼峰原则:
eg:
monthSalary
即出来第一个单词以外,后面的单词首字母大写
3.局部变量:首字母小写和驼峰原则
4.常量:大写字母和下划线:MAX_VALUE
5.类名:首字母大写和驼峰原则:Man,GoodGirl
6.方法名:首字母小写和驼峰原则:run(),runFast()

常量:

初始化后就不能再改变。
可以理解为一种特殊的变量,即设定好就不能再改变。
final 常量名 = 值;
final double PI = 3.14;
常量名一般使用大写字母。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值