Java入门基础

Java入门

编译型:一次性全部编译完 C\C++

解释型:编译一部分读取一部分 Java\Js边编译边执行

IDE 集成开发环境

Java基础语法

注释

  1. 单行注释 // 只能注释一行文字
  2. 多行注释 /* 注释 */ 可以注释多行注释
  3. JavaDoc:文档注释 /** */

关键字

Java入门基础_第1张图片

标识符

Java是强类型语言,区分大小写

尽量用单词规范命名

数据类型

强类型语言

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

弱类型语言

​ 不用严格按照规定

Java的数据类型分为两大类

基本类型

引用类型

Java入门基础_第2张图片

八大基本数据类型

//整数
byte num1=10;  
short num2=100;
int num3=1000;  
long num4=10L;  //long类型后一定要加上L,用于区分是long类型

//小数:浮点数
float num5=50.2F;  //float类型后一定要加上F
double num6=3.1231231;

//字符
char ca='a'; //只能是一个字符
//字符串,String不是关键字,是一个类
String name="杨卓";

//布尔值
boolean fr=true;
boolean ft=false;

引用数据类型

String 除了基本数据类型之外的都是引用数据类型

字节

位:计算机内部数据存储的最小单位

字节:计算机中数据处理的基本单位

1个字节等于8位

数据类型拓展

//整数拓展:    进制    二进制0b   十进制   八进制0  十六进制0x
        int num1=10;   //十进制
        int num2=0b10;  //二进制
        int num3=010;   //八进制
        int num4=0x10;  //十六进制

        System.out.println(num1);   10
        System.out.println(num2);   2
        System.out.println(num3);   8
        System.out.println(num4);   16
            
//浮点数拓展
//BigDecimal   数学工具类
//float 有限 离散 舍入误差  大约 接近但不等于
//double
//最好完全避免使用浮点型进行比较
        float f=0.1f;
        double d=1.0/10;
        System.out.println(f==d);//false
        System.out.println(f);//0.1
        System.out.println(d);//0.1


        float f1=22222f;
        float f2=f1+1;
        System.out.println(f1==f2);//false
        System.out.println(f1);//22222.0
        System.out.println(f2);//22223.0


//字符拓展
        char c1='a';
        char c2='中';

        System.out.println(c1);// a
        System.out.println((int) c1);// 97
        System.out.println(c2);// 中
        System.out.println((int) c2);// 20013
        //所有的字符本质上还是数字
        //Unicode表  (97=a  65=A)  2字节  0-65536
         //底层原理  U0000  UFFFF
        char c3='\u0061';
        System.out.println(c3);//a

//转义字符
   // \t  制表符
   // \n  换行
        System.out.println("Hello\nWorld");//换行输出了Hello和World

//布尔值扩展
        boolean flag=true;
        if (flag == true) {
            //新手
        }
        if (flag){
            //代码简洁
        }

类型转换

优先级:低------------------------------高

byte—>short—>char—>int—>long—>float—>double

优先级高的向优先级低的转化时 需要强制类型转换(高-----低)

//强制转换  (类型)变量名      由高----低
       int i=128;
       byte b=(byte) i; //-127----127
       System.out.println(i);//128
       System.out.println(b);//-128 溢出

       //自动转换  不需要做任何变化   由低----高
       double d=i;

       /*
       * 注意点:
       * 1.不能对布尔值进行转换
       * 2.不能把对象类型转换为不相干的类型
       * 3.在把高容量转换到低容量的时候,强制转换
       * 4.转换的时候可能存在内存溢出,或者精度问题
       * */
       System.out.println((int)21.1f);//21
       System.out.println((int)-23.22f);//-23

       //char和int的转换
       char c='a';
       int i1=c+1;   //低-----高 自动转换
       System.out.println(i1);//98
       System.out.println((char)i1);//b

       //操作比较大的数,注意移除问题
       //JDK新特性,数字之间可以用下划线分割
       int money=10_0000_0000;
       System.out.println(money);//1000000000

       int years=20;
       int total=money*years;
       System.out.println(total);//-1474836480 数据溢出了
       long total1=money*years;
       System.out.println(total1);//-1474836480 相乘后默认是int,转换之前就已经溢出了

       long total2=(long) money*years;
       System.out.println(total2);//20000000000 先把一个数转换成long,相乘后的结果也是long型

变量

变量:可以变化的量

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

类变量: static 修饰的变量为类变量,也叫静态变量

实例变量: 实例化的变量为实例变量、

局部变量: 在方法体内声明的变量并且必须初始化

Java入门基础_第3张图片

 //实例变量:从属于对象:
    String name;
    int age;

    //类变量 static
      static double salary=2500;

    //main 方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i=20;
        System.out.println(i);//20

      作用域 z= new 作用域();
      //实例变量如果没有初始化,则这个类型会为默认值
        //整型  0   布尔值  false  除了基本类型其他的是null
        System.out.println(z.age);//0
        System.out.println(z.name);//null

        //类变量可以直接输出salary
        System.out.println(salary);//2500.0

    }
    
    public void add(){

    }

常量及命名规则

初始化之后不能改变值,不会变动的值 final修饰

 //常量  final
    //修饰符不存在先后顺序
    public final static int A=10;

    /*变量的命名规范
      所有的命名都必须简单易懂
    * 类成员变量:首字母小写 驼峰命名法 lastName
    * 局部变量:首字母小写 驼峰
    * 常量:大写字母和下划线  PI
    * 类名:首字母大写和驼峰  Person
    * 方法名:首字母小写 驼峰 run() getRead()
    * 包名:小写 stu
    * */

运算符

//二元运算符号  Ctrl+D 复制当前行到下一行
        int a=10;
        int b=20;
        int c=30;
        int d=40;

        System.out.println(a+b);//30
        System.out.println(a-c);//-20
        System.out.println(a*d);//400
        System.out.println(a/(double)b);//0.5 小数的时候注意作用范围

        //关系运算符 结果为布尔值
        int e=10;
        int f=22;
        System.out.println(e==f);
        System.out.println(e>f);
        System.out.println(e<f);
        System.out.println(e!=f);
        System.out.println(f%e);//模运算

        //++自增   --自减
        //a++ 先赋值再计算  ++a先计算再赋值
        int a1=2;
        int b1=a1++;//先赋值 再a1++  a1=3
        int c1=++a1;//先a1++ 再赋值  c1=a1=4
        System.out.println(a1);//4
        System.out.println(b1);//2
        System.out.println(c1);//4

        //幂运算 Math类
        double pow= Math.pow(2,3);//2的3次方
        double sqrt=Math.sqrt(4);
        System.out.println(pow);//8.0
        System.out.println(sqrt);//2.0

        //逻辑运算符 与&& 或|| 非!
        /*
        逻辑与运算&& 同真即真 一假即假 存在短路现象 前面判断的为假的话 后面的不会计算
        逻辑或运算|| 同假即假 一真即真
        逻辑非运算! 在结果的基础上取相反的结果
         */
        boolean ya=true;
        boolean yb=false;
        System.out.println(ya&&yb);//false
        System.out.println(ya||yb);//true
        System.out.println(!(ya&&yb));//true
        System.out.println(!(ya||yb));//false

        //短路运算
        int cd=3;
        boolean bl=(cd<2)&&(cd++<2);
        System.out.println(bl);//false
        System.out.println(cd);//3 后面的语音并没有执行,出现了短路现象

        //位运算 &与  |或   ^异或 (相同则为0,不相同则为1)     ~非
        /*
                A=0010 1101
                B=0111 1000

                A&B=0010 1000
                A|B=0111 1101
                A^B=0101 0101
                 ~B=1000 0111



            >>右移  /2 除以2
            <<左移  *2 乘以2
            快速计算16
            2*8=16 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
            可以发现数字2中  1的位置向左移动3位变成了 16

         */
        System.out.println(2<<3);//16
        System.out.println(8>>2);//2

        //扩展运算符 +=  -=
        int ab=10;
        int ac=20;
        ab+=ac;//ab=ab+ac
        System.out.println(ab);//ab=30
        ab-=ac;//ab=ab+ac
        System.out.println(ab);//ab=10

        //字符串连接 + String
        /*字符串连接  +两侧只要出现了String类型 则就是字符串的连接
            但是如果String类型出现在+的右侧(之后),前面的操作依然会运算 -------①
            如果String类型出现在+的左侧(之前),则后面的操作不会计算,直接进行字符串的连接-----②
         */

        System.out.println(ab+ac);//值 30
        System.out.println(ab+ac+"");//前面运算后再连接 30-----①
        System.out.println(""+ab+ac);//字符串连接 1020 -----②
        // System.out.println('a'+ab);//97+10=107 自动将a转换成了97

        //三元运算符   x?y:z------> if(x==true) return y else z
        int k=3;
        int l=4;
        int qu=k>l?k:l;//如果k>l则为k,否则为l
        System.out.println(qu);//4=l

        //优先级 ()

包机制

一般公司域名倒置作为包名 防止命名空间重复

域名: www.baidu.com 包名:com.baidu.xxx

导入包: import package1[.package2].(className|*);

JavaDoc是Java的文件

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

命令行--------javadoc -encoding UTF-8 -charset UTF-8 Operator.java 防止出现中文乱码
Java入门基础_第4张图片

idea生成Javadoc文档

Tools------>
Java入门基础_第5张图片

Java入门基础_第6张图片

你可能感兴趣的:(Java,开发,入门基础,java,开发语言)