JAVA基础

HelloWorld

  1. 新建一个文件夹,存放代码

  2. 新建一个java文件

    • 文件后缀名为.java
    • Hello.java
    • 需要注意的是,系统可能没有显示文件后缀名,我们需要手动打开
  3. 编写代码

    public class Hello{
    	public static void main(String[] args){
    		System.out.print("Hello,World!");
    	}
    
    }
    
  4. 编写javac java文件,会生成一个java class文件

可能会遇到的情况

  1. 每个单词的大小写不能出现问题,java是大小写敏感的
  2. 尽量使用英文
  3. 文件名和类名必须保持一致,并且首字母大写
  4. 符号使用了中文

java基础语法

注释、标识符、关键字

  1. 注释

    • 单行注释

      //我是单行注释

    • 多行注释

      /* 我是多行注释*/

    • 文档注释

    注释并不会被执行,是给我们写代码的人看的

  2. 标识符

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

    标识符注意点

    • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
    • 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或者数字的任何组合
    • 不能使用关键字作为变量名或方法名
    • 标识符是大小写敏感
    • 合法标识符举例:age、$salary、_value、__1_value
    • 非法标识符举例:123abc、-salary、#abc

    • 可以使用中文命名,但是一般不建议这样使用,也不建议使用拼音。
  3. 关键字

数据类型

​ 强类型语言

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

    //安全性高,速度低

  • 弱类型语言

Java的数据类型分为两大类

  1. 基本类型(primitive type)

    8大基本类型

    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 = 20.1F; //float 类型在数字后面加F
            double num6 = 3.141592634363634;
    
            //字符
            char name = '国';
            //字符串,String不是关键字,类
            //String name ="大风书";
    
            //布尔值
            boolean flag = true;
            boolean  flaga = false;
    
    1. 引用类型(referen type)

什么是字节

数据类型扩展

public class Demo03 {
    public static void main(String[] args) {
        //整数拓展   进制  二进制0b   十进制   八进制0   十六进制0x

        int i = 10;
        int i1 = 010;//八进制0
        int i2 =0x10;//十六进制0x     0~9 A~F  16
        System.out.println(i);
        System.out.println(i1);
        System.out.println(i2);

        System.out.println("========================================");
        //=============================================
        //浮点数扩展?   银行业务怎么表示?钱

        //BigDecimal  数学红菊类
        //=============================================

        //float  有限   离散  舍入误差 大约 接近但不等于
        //double
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较
        //最好完全避免使用浮点数进行比较



        float f = 0.1f;//0.1
        double b = 1.0/10; //0.1

        System.out.println(f==b);//false
        System.out.println(f);
        System.out.println(b);

        float d1 = 23232542525225f;
        float d2 = d1+1;

        System.out.println(d1==d2);//true


        //===========================================
        //字符拓展
        //==============================================
        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字节  65536   Excel    2的16次方 = 65536
        char c3 = '\u0061';
        System.out.println(c3);



        //转义字符

        //\t  制表符
        //\n   换行

        System.out.println("Hello\tWorld!");

        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";
        String sd = "hello world";
        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的最大值是127,所以这里128内存溢出了
        byte b = (byte)i;

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

        System.out.println(i);
        System.out.println(b);

        /*
        * 注意:
        * 1.不能把布尔值进行转换
        * 2.不能把对象类型转换为不相干的类型
        * 3.在把高容量转化为低容量的时候,强制转换
        * 4.转换的时候可能存在内存溢出,或者精度问题!
        *
        * */

        System.out.println("==================================");

        System.out.println((int)23.7);//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) {
        //操比较大的数时,注意溢出问题
        //JDK新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total  = money*years;//-1474836480,计算的时候溢出了
        long total2 = money*years;//默认是int类型,转换之前已经出问题了

        long total3 = money*((long)years);//先把一个数转为long类型
        System.out.println(total3);
    }
}

变量、常量

变量

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

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

变量作用域

  • 类变量
  • 实例变量
  • 局部变量

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(){

    }

}

常量

  • 常量(Constant):初始化(initialize)后不能改变的值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程汇总不允许被改变。

  • 常量名一般使用大写字符。

运算符

  public static void main(String[] args) {
        long a = 121212121121121211L;
        int  b = 123;
        short c = 10;
        byte  d = 8;
        double e = 15.5;

        System.out.println(a+b+c+d);//Long,如果有一个是long类型的
        //那么和结果就是long类型的
        System.out.println(b+c+d);//Int
        System.out.println(c+d);//Int
        System.out.println(c+e);
        System.out.println(a+e);
    }
}

package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++ --  自增,自减  一元运算符


        int a = 3;

        int b = a++;//执行完这行代码后,先给b赋值,再自增
        System.out.println(b);//3
        //a = a+1;
        System.out.println(a);//4
        int c = ++a;//执行完这行代码前,先自增,再给b赋值
        System.out.println(a);
        System.out.println(c);

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

        //幂运算 2^3
        double pow = Math.pow(3, 2);
        System.out.println(pow);


    }
}

package operator;

public class Dome06 {
    public static void main(String[] args) {
        /*
        位运算
        * A = 0011 1100
        * B = 0000 1101
        *
        * A&B =0000 1100
        * A|B =0011 1101
        * 取反  异或   A^B =0011 0001
        相同就是0,不同就是1


      取反  ~B = 1111  0010
        *
        *

        效率极高!,指的是二进制的运算,
        <<   左移
         >>     右移
        *
        * */
        System.out.println(2<<3);
    }
}

package operator;

public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        a+=b; //a = a+b
        a-=b; //a = a-b

        System.out.println(a);

        // 字符串连接符   +
        //当字符串在前面,后面的就会拼接
        System.out.println(""+a+b);//1020


        //当字符串在后面时,前面的会运算
        System.out.println(a+b+"");//30


    }
}

package operator;

//三目运算符
public class Demo08 {
    public static void main(String[] args){
        //x ? y : z
        //如果x==true ,则结果为y,否则结果为z


        int score = 80;
        String type = score <60 ?"不及格" :"及格";//必须掌握
        System.out.println(type);
    }
}

包机制、JavaDoc

包机制

  • 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。

  • 包语句的语法格式为

    package pkg1[.pkg2[.pkg3...]];
    

一般利用公司域名倒置作为包名:com.dafengshu.blog

为了能够使用某一个包的成员,我们需要在java程序中明确导入该包,

使用"import"语句可完成此功能

import package1[.package2...].(classname|*);

JavaDoc

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

  • 参数信息
  • @author作者名
  • @version版本号
  • @since指明需要最早使用的jdk版本
  • @param参数名
  • @return返回值情况
  • @throws异常抛出情况
package com.fengshu.base;

/**
* @author dafengshu
* @version 1.0
* @since 1.8
*
* */

public class Doc {
    String name;

    /**
     *
     * @param name
     * @return
     * @throws Exception
     */
    public String test(String name) throws Exception{
        return name;
    }

}
//命令符:
//javadoc 参数(-encoding编码的意思,utf-8 -charset //utf-8)  java文件

加在类上面就是类的注释,加在方法上就是方法的注释

posted @ 2022-04-01 22:22  shushengyuan  阅读(24)  评论(0编辑  收藏  举报