java基础

注释

  • 代码复杂的时候就需要写注释

  • 注释不会执行,是留给写代码的人看的

  • 书写注释是一个好习惯

  • 平时写代码一定要注重规范

  • Java的注释有三种:

    • 单行注释

    • 多行注释

    • 文档注释

public class HelloWorld {
    public static void main(String[] args) {
        //单行注释:只能注释一行文字
        //输出一个Hello,World
        System.out.println("Hello,World!");
        //多行注释:可以注释一段文字  /*注释*/
        /*
        我是多行注释
        我是多行注释
        我是多行注释
        我是多行注释
        */
​
        //JavaDoc:文档注释      /**  */
        /**
         * 
         * 
         * */
    }
}

标识符

关键字

  • Java的所有组成部分都需要名字。类名变量名以及方法名都被称为标识符

String me = "叶小幽";

标识符注意点

  • 所有的都应该以字母(A-Z或者a-z)、美元符($)、或者下划线开始(__)

  • 首字符之后可以是字母(A-Z或者a-z)、美元符($)、下划线(__)或数字的任何组合

  • 不能使用关键字作为变量名或者方法名

  • 标识符是大小写敏感的

            String Ahello = "yexiaoyou";
            String ahello = "yexiaoyou";
  • 可以使用中文,但不建议使用

public class Demo01 {
    public static void main(String[] args) {
        String 叶小幽 = "yexiaoyou";
        System.out.println(叶小幽);
    }
}
​

数据类型

强类型语言

  • 要求所有的变量符合规定,所有变量都必须先定义才能使用


弱类型语言

  • 要求所有变量符合规定


Java的数据类型分为两大类

基本类型

public class Demo02 {
    public static void main(String[] args) {
        //八大基本数据类型
​
        //整数
        int num1 = 10;//最常用
        byte num2 = 20;
        short num3 = 30;
        long mun4 = 30L;//long类型要在数字后面加L
​
        //小数:浮点数
        float num5 = 12.1F;//float类型要在数字后面加F
        double  num6 = 1.23456789;
​
        //字符
        char name = 'A';
        //字符串,String不是关键字,类
        //String name = "叶小幽";
​
        //布尔值:是非
        boolean flag = true;
        //boolean flag = false;
    }
}

引用类型

  • 基本类型以外都是引用类型,包含类,数组,接口


什么是字节

  • 位(bit):是计算机 内部数据 存储的最小单位,11001100是一个八位二进制数

  • 字节(byte):是计算机 数据处理 的基本单位习惯上用大写B来表示

  • 1B(byte,字节) = 8bit(位)

  • 字符:是指计算机中使用的字母、数字、字和符号

  • 1bit表示1位

  • 1byte表示1个字节 1B = 8b

  • 1024b = 1KB

  • 1024KB = 1M

  • 1024M = 1G

  • 1024G = 1T


数据类型扩展

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展: 进制  二进制0b   十进制 八进制0    十六进制0x
​
        int i = 10;
        int i1 = 0b10;//二进制0b
        int i2 = 010;//八进制0
        int i3 = 0x10;//十六进制0x  0~9 A~F 16
​
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("------------------------------");
​
        //---------------------
        //浮点数拓展 银行业务如何表示钱
        //BigDecimal    数学工具类
        //---------------------
        //float 有限  离散  舍入误差    大约  接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
​
        float f = 0.1f; //0.1
        double d = 0.1; //0.1
​
        System.out.println(f==d);//false
​
        float d1 = 235432124234234f;
        float d2 = d1 + 1;
​
        System.out.println(d1==d2);//true
        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);//强制换行
​
        //所有的字符本质还是数字
        //编码 Unicode 表:(97=a 65=A)  2字节 0 - 65536   Excel   2^16 =65536
​
        //U0000 UFFFF
​
        char c3 ='\u0061';
        System.out.println(c3); //a
​
        //转义字符
        // \t   制表符
        // \n   换行
        //....
​
        System.out.println("hello\nworld");
​
        System.out.println("------------------------------");
        String sa = new String("hello world");
        String sb = new String("hello world");
        System.out.println(sa==sb);
​
        String sc ="hello world";//false
        String sd ="hello world";//true
        System.out.println(sc==sd);
        //对象    从内存分析
​
        //布尔值扩展
        boolean flag = true;
        if(flag==true){}//新手
        if(flag){}//老手
        //Less is More! 代码要精简易读
    }
}

类型转换

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

由低到高,小数优先级一定大于整数

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

  • 强制类型转换

  • 自动类型转换

public class Demo05 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;//内存溢出
​
        //强制转换  (类型)变量名 高--低
        //自动转换  低--高
        //自动转换  低--高
​
        System.out.println(i);
        System.out.println(b);
​
        int i1 = 128;
        double i2 = i;
​
        System.out.println(i1);
        System.out.println(i2);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换为不相干的类型
        3.再把高容量转换为低容量的时候,强制转换
        4.转换的时候可能存在内存溢出,或者精度问题!
         */
​
        System.out.println("---------------------");
        System.out.println((int)23.4);//23
        System.out.println((int)-45.78f);//-45
​
        System.out.println("---------------------");
        char c = 'a';
        int d = c+1;
        System.out.println(d);
        System.out.println((char)d);
    }
}
public class Demo06 {
    public static void main(String[] args) {
        //操作比较大数字的时候注意溢出问题
        //jdk7新特性,数字之间可以使用下划线分割
        int money = 10_0000_0000;
        int year = 20;
        int total = money*year;//-1474836480,计算的时候溢出了
        long total2 = money*year;//默认是int,转换之前就已经存在问题了
​
        long total3 =((long)money)*year;//先把一个数转换为long类型
        System.out.println(total3);
​
        //  L   l
​
    }
}

内存溢出问题的注意


变量

public class Demo07 {
    public static void main(String[] args) {
        //int a,b,c;
        //int a=1,b=2,c=3;
        String name = "yexiaoyou";  //程序可读性
        char x = 'x';
        double pi = 3.14;
    }
}
  • 变量就是可以变换的量

  • java是一种强类型语言,每个变量都必须申明其类型

  • java变量是程序中最基础的存储单元,其要素包括变量名,变量类型和作用域

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

    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型

    • 变量名必须是合法的标识符

    • 变量声明是一条完整的语句,因此每一句声明都必须以分号结束


变量作用域

  • 类变量

  • 实例变量

  • 局部变量

public class Demo08 {
​
    //类变量   static
    static double salary = 2500;
​
    //属性:变量
​
    //实例对象:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null;
    String name;
    int age;
​
    //main方法
    public static void main(String[] args) {
​
        //局部变量;必须声明和初始化值
        int i = 10;
        System.out.println(i);
​
        //变量类型 变量名字 = new Demo08
        Demo08 demo08 = new Demo08();
        System.out.println(demo08.age);
        System.out.println(demo08.name);
​
        //类变量   static
        System.out.println(salary);
​
    }
​
    //其他方法
    public void add(){
        
    }
}

常量

  • 常量:初始化后不能再改变值!不会变动的值

  • 常量可以理解成一种特殊的变量,它的值在设定后,在程序运行过程中不允许被改变

final 常量名=值;
final double pi=3.14;
  • 常量名一般使用大写字符

public class demo09 {
​
    //修饰符不存在先后顺序
    static final double PI = 3.14;
​
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

常量的命名规范

  • 所有变量方法类名:见名知意

  • 类成员变量:首字母小写加驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母大写 lastname lastName

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man,GoodMan

  • 方法名:首字母小写和驼峰原则:tun(),runRun()


运算符

  • Java支持以下运算符

    • 算数运算符:+,-,*,/,%,++,--

    • 赋值运算符:=

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

    • 逻辑运算符:&&,||,!(与,或,非)

    • 位运算符:&,|,^,~,>>,<<,>>>(了解)(与,或,取反,非,右移,左移)

    • 条件运算符?,:

    • 扩展赋值运算符:+=,-=,*=,/=


运算符的优先级


算数运算符

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符
        //ctrl+d:复制当前行到下一行
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;
​
        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
    }
}
package operator;
​
public class Demo02 {
    public static void main(String[] args) {
        long a = 123456789L;
        int b = 12345;
        short c = 12;
        byte d = 8;
​
        System.out.println(a+b+c+d);//Long
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
    }
}


自增自减

public class Demo04 {
    public static void main(String[] args) {
        //++   --    自增,自减   一元运算符
        int a = 3;
​
        int b = a++;//执行完这个代码后,先给b赋值,再自增
        //a = a + 1
        System.out.println(a);//4
        //a = a + 1
        int c = ++a;//执行完这个代码前,先自增,再给c赋值
​
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//5
​
        //幂运算   2^3 2*2*2 = 8   很多运算我们会使用一些工具类来操作
        double pow = Math.pow(2, 3);
        System.out.println(pow);
    }
}

关系运算符

package operator;
​
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符返回的结果:正确,错误  布尔值
        //if
​
        int a = 10;
        int b = 20;
        int c = 21;
​
        //取余,模运算
        System.out.println(c%a);//  c/a 21/10=2...1
​
        System.out.println(a<b);
        System.out.println(a>b);
        System.out.println(a==b);
        System.out.println(a<=b);
        System.out.println(a>=b);
        System.out.println(a!=b);
    }
}

逻辑运算符

//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        //与(and)    或(or)   非(取反)
        boolean a = true;
        boolean b = false;
​
        System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
        System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量至少有一个为真,则结果为true
        System.out.println("!(a && b):"+!(a&&b));//如果是真则为假,如果是假则为真
​
        //短路运算  逻辑与运算第一个为假,则不执行后续运算
        int c = 5;
        boolean d = (c<4)&&(c++<4);
        System.out.println(c);//5
        System.out.println(d);//false
    }

位运算符

//位运算
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101
        ---------------
        A&B = 0000 1100
        A|B = 0011 1101
        A^B = 0011 0001
        ~b = 1111 0010
​
        2 * 8 = 16  2*2*2*2
        效率极高
        <<  *2
        >>  /2
​
        0000 0000   0
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 1000   8
        0001 0000   16
​
         */
        
        System.out.println(2<<3);
    }
}

扩展运算符

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
​
        a+=b;//a = a + b    30
        System.out.println(a);
        a-=b;//a = a - b    10
        System.out.println(a);
​
        //字符串连接符    +   ,String之后的操作都转换为String再进行连接
        System.out.println(""+a+b);//1020
        System.out.println(a+b+"");//30
        System.out.println(a+b+""+a+b);//301020
​
    }
}

条件运算符(三元运算符)

//三元运算符
public class Demo08 {
    public static void main(String[] args) {
        //x ? y : z
        //如果x为true,则结果为y,否则为z
​
        int score = 60;
        String type = score < 60 ? "不及格" : "及格" ;
        //if
        System.out.println(type);
        
    }
}

包机制

  • 包的本质是文件夹

  • 包的语法格式为

package pkg1.pkg2.pkg3;
  • 一般利用公司域名倒置作为包名 www.baidu.com com.baidu.www

  • 包的引用格式

import pkg1.pkg2.pkg3;

JavaDoc

  • JavaDoc命令是用来生成自己的API文档的

  • 参数信息

    • @athor 作者名

    • @version 版本号

    • @since 指明需要最早使用的jdk版本

    • @param 参数名

    • @return 返回值情况

    • @throws 异常抛出情况

package com.yexiaoyou.base;
​
/**
 * @author yexiaoyou
 * @version 1.0
 * @since 1.8
 */
public class Doc {
    String name;
​
    /**
     * @author yexiaoyou
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }
    //通过命令行 javadoc 参数 Java文件、
​
    //作业:学会查找使用IDEA生产JavaDoc文档  面向百度编程
    
    //基础后面的一切知识后面都会用到
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值