Java学习笔记(2)----Java基础语法

B站遇见狂神说

一、注释、标识符、关键字

1、注释

  • 书写注释是一个非常好的习惯。
  • 平时写代码一定要规范。
public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}
//单行注释
/*
    多
    行
    注
    释
 */
//JavaDoc:文档注释
/**
 * 现在用不到
 */

2、标识符

  • 关键字

在这里插入图片描述

  • Java所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
  • 所有的标识符都应该以字母,美元符,下划线或数字的任何字符组合。
  • 不能使用关键字作为变量名或方法名
  • 标识符可以使用中文命名,但不建议。

二、数据类型

  • 强类型语言:所有变量必须先定义后才能使用。(Java)
  • 弱类型语言:没有严格的要求。(JS)
  • Java的数据类型分为两大类

基本数据类型

数值类型

byte,1字节,-128 ~ 127

short,2字节,-32768 ~ 32767

int,4字节,-2147483648 ~ 2147483647

long,8字节,-9223372036854775808 ~ 9223372036854775807

false,4字节

double,8字节

char,2字节

布尔类型:占一位,其值只有true和false。

引用数据类型:类,接口,数组,日后学。

int num1 = 10;
byte num2 = 20;
short num3 = 30;
long num4 = 30L;
float num5 = 50.1F;
double num6 = 3.141592653589793238462643;
char name = 'A'
String name = "lisi";

什么是字节?

  • 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
  • 字节(byte):是计算机中数据处理的基本单位,习惯用大写B来表示。
  • 1B = 8bit
  • 字符:是指计算机中使用的数字,字母,字和符号。
1bit表示一位
1Byte表示一个字节 1B = 8b。
1024B = 1KB
1024KB = 1M
1024M = 1G

进制问题

public class 进制问题 {
    public static void main(String[] args){
        //整数拓展:     进制      二进制0b       十进制     八进制0        十六进制0x
        int i = 10;
        int i2 = 010;
        int i3 = 0x10;
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
    }
}
		//浮点型都是有误差的,有范围的,是离散的,接近但不等于。
        //因此最好不要使用浮点数进行比较。
        float f = 0.1f;
        double d = 1.0/10;
        System.out.println(f == d); //false
        float d1 = 232465134165423151321354165f;
        float d2 = d1 + 1;
        System.out.println(d1 == d2);   //true

强转问题

public class 强转问题 {
    public static void main(String[] args){
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);    //97
        System.out.println(c2);
        System.out.println((int)c2);    //20013
        //Unicode编码,2字节,65536个字符,2^16
        char c3 = '\u0061';
        System.out.println(c3); //a
    }
}

类型转换

  • 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。

  • 低–>高

    byte,short,int,long,float,double

  • 运算中,不同类型的数据先转化为同一类型,然后进行运算。

  • 强制类型转换

  • 自动类型转换

public class 类型转换 {
    public static void main(String[] args){
        int i = 128;
        //byte b = i; //报错,需要byte,给的int
        byte b = (byte)i;   //强制转换,高-->低
        System.out.println(b);  //内存溢出,-128

        double c = i;
        System.out.println(c);  //128.0

        /*
            注意点:
                1、不能对布尔进行转换
                2、不能把对象类型转换为不相干的类型。
                3、大容量转换为小容量,强制转换,强转的时候可能存在内存溢出,精度问题。
         */
        char c1 = 'a';
        int d = (int)c1 + 1;
        System.out.println(d);  //98
        System.out.println((char)d);    //b


    }
}
  • 类型转换遇到的精度溢出的问题
public class 类型转换遇到的问题 {
    public static void main(String[] args){
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下滑线分割。
        int money = 1000000000;
        int money1 = 10_0000_0000;
        int years = 20;
        int total = money*years;
        long total2 = money*years;
        System.out.println(total+","+total2);//负数,精度溢出,years是int类型

        long total3 = money*((long)years);//先把一个整数转换为long
        System.out.println(total3);//200亿
    }
}

三、变量,常量,作用域

1、变量

  • 变量是什么?就是可以变化的量。
  • Java是一种强类型语言,每个变量都必须声明其类型。
  • Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

注意事项:

  • 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
  • 变量名必须是合法的标识符。
  • 变量声明必须是一条完整的语句,因此每一个声明都必须以分号结束。

2、变量的作用域

  • 类变量
  • 实例变量
  • 局部变量
public class 三大变量 {
    //类变量
    static double salary = 2500;

    //属性:变量
    //实例变量:从属于对象,如果不自行初始化,这个类型默认值0,0.0 null
    //布尔值:false。
    String name;
    int age;

    //main方法
    public static void main(String[] args){
        int i;  //局部变量:必须声明和初始化,只在改方法里有效。
        // System.out.println(i); 报错

        //变量类型 变量名
        三大变量 sdbl = new 三大变量();
        System.out.println(sdbl.name);
        System.out.println(salary);
    }

    //其他方法
    public void add(){

    }
}
  • 常量

fianl 数据类型 常量名 = 常量值

final double PI = 3.14;

3、变量的命名规范

  • 所有的变量,方法名,类名:见名知意
  • 类成员变量:首字母小写和驼峰原则
  • 局部变量:首字母小写和驼峰原则:lastName
  • 常量:纯大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

四、运算符

  • 算数运算符:+,-,*,/,%,++,–
  • 赋值运算符:=
  • 关系运算符:>,<,>=,<=,==,!=,instanceof
  • 逻辑运算符:&&,||,! 与,或,非

了解

  • 位运算符:&,|,^,~,>>,<<,>>>
  • 条件运算符:? :
  • 拓展赋值运算符:+=,-=,*=,/=。
public class 位运算 {
    public static void main(String[] args){
        /*
            A = 0011 1100
            b = 0000 1101
            
            A&B = 0000 1100 都是1为1,其它为0
            A/B = 0011 1101 都是0为0,其他为1
            A^B = 0011 0001 相同为0,不同为1
            ~B = 1111 0010 取反
            
            2*8怎么运算最快
            2*2*2*2
            
            >>位运算 *2
            <<      /2效率高
         */
    }
}

三元运算符

public class 三元运算符 {
    public static void main(String[] args){
        int a = 10;
        int b = 20;

        a+=b;   //a = a + b
        a-=b;
        //字符串连接符"加"
        System.out.println(""+a+b); //1020
        System.out.println(a+b+""); //30

        //三元运算符
        //x ? y : z
        //如果x为真,则结果为y,否则为z。
        int score = 80;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);
    }
}

五、包机制

  • 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
  • 包语句的语法格式为:
package pkg1.pkg2.pkg3...
  • 一般利用公司域名倒置作为包名。
  • 为了能够使用某一个包的成员,我们需要在Java程序中明确带入该包。使用import语句可以完成此功能。
import package1.package2.classname
import package1.*导入这个包下所有的类。

六、JavaDoc

  • javadoc命令是用来生成自己API文档的。
  • 参数信息

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

public class JavaDoc {
    /**
     * @outhor  kuangshen
     * @version 1.0 
     * @since   1.8
     */
    
    public class Doc{
        String name;
        /**
         * @outhor  kuangshen
         * @version 1.0
         * @since   1.8
         * @throws Exception
         */
    }
    public String test(String name) throws Exception{
        return name;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值