3.Java基础语法

Java基础语法

目录

Java基础语法

注释

标识符

标识符注意点

数据类型

类型转换

变量

变量作用域

变量的命名规范

常量

运算符

包机制

JavaDoc

注释

  1. Java中的注释有三种:

    1. 单行注释 //

    2. 多行注释 /**/

    3. 文档注释 /** */

标识符

  1. 关键字

    abstractassertbooleanbreakbyte
    casecatchcharclassconst
    continuedefaultdodoubleelse
    enumextendsfinalfinally**float
    forgotoifimplementimport
    instanceofintinterfacelongnative
    newpackageprivateprotectedpublic
    returnstrictfpshortstaticsuper
    switchsynchronizedthisthrowthrows
    transienttryvoidvolatilewhile
  2. Java所有的组成部分都需要名字。类名、变量名以及方法名都被称作标识符。

标识符注意点

  1. 所有标识符都应该以字母(A-Z或者a-z),美元符($)、下划线(_)开始

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

  3. 不能使用关键字作为变量名或方法名。

  4. 标识符是大小写敏感

  5. 合法标识符举例:age、$salary、_1_value

  6. 非法标识符距离:123abc、-salary、#abc

  7. 可以使用中文命名,但是一般不推荐,也不建议使用拼音

数据类型

  1. 强制类型语言(安全性高、速度慢)

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

  2. 弱类型语言(安全性低,速度快)

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

  3. Java的数据类型分为两大类

    1. 基本类型(primitive type)

      1. 数值类型

        1. 整数类型

          1. byte占1个字节 范围:-128-127

          2. short占2个字节 范围:-32768-32767

          3. int占4个字节 范围:-2147483648-2147483647

          4. long占8个字节 范围:-9223372036854775808-9223372036854775807

        2. 浮点类型

          1. float占4个字节

          2. double占8个字节

        3. 字符类型char占2个字节

      2. boolean类型:占1位 其值只有true和false两种

       public class DataType {
           public static void main(String[] args) {
       ​
               //八大数据类型
               //整数
               int num1=2147483647;//常用
               byte mun2=127;
               short num3=32767;
               long num4=9223372036854775807L;
       ​
               //小数=浮点数
               float num5=1.2f;
               double num6=3.1415926;
       ​
               //字符
               char num='夏';
       ​
               //布尔值
               boolean flag=true;
               boolean flag1= false;
           }
       }

    2. 引用数据类型(reference type)

      1. 接口

      2. 数组

    扩展

     public class BaseSystem {
         public static void main(String[] args) {
     ​
             //整数扩展: 进制      二进制0b       八进制0     十进制    十六进制0x
             int a=0b10;//二进制
             int j=010;//八进制
             int i=10;//十进制
             int x=0x10;//十六进制  0~9  A~F
             System.out.println(a);
             System.out.println(j);
             System.out.println(i);
             System.out.println(x);
             System.out.println("=======================");
     ​
             //浮点数扩展     银行业务---钱~~~~BigDecimal  数学工具类
             //float     有限  离散  舍入误差  大约  接近但不相等
             //double
             //最好不要完全使用浮点数进行比较
             float f=0.1f;//0.1
             double d=1.0/10;//0.1
     ​
             System.out.println(f==d);//false
             System.out.println(f);
             System.out.println(d);
     ​
             float f1=123454254466f;
             float f2=f1+1;
             System.out.println(f1==f2);//当f1数值较小时加1后相比为false;当f1数值较大时加1后相比为true
             System.out.println("=======================");
     ​
             //字符扩展
             char c1='a';
             char c2 = '中';
             char c3='张';
             char c4='亮';
             System.out.println(c1);
             System.out.println((int) c1);//强制转换
             System.out.println(c2);
             System.out.println((int) c2);//强制转换
             System.out.println(c3);
             System.out.println((int) c3);//强制转换
             System.out.println(c4);
             System.out.println((int) c4);//强制转换
             //所有字符本质还是数字
             //编码    Unicode 表:97=a  65=A    2字节 0~65536         Excel   2 16=65536
             //范围:U0000~UFFFF
     ​
             //转义字符      \t 制表符      \n 换行   ···
     ​
     ​
     ​
     ​
             //深思
             System.out.println("======================");
             String sa =new String("HelloWord");
             String sb = new String("HelloWord");
             System.out.println(sa==sb);//false
     ​
             String sc ="HelloWord";
             String sd ="HelloWord";
             System.out.println(sc==sd);//true
             //对象    从内存分析
     ​
     ​
     ​
     ​
             //布尔值扩展
             boolean flag = true;
             if (flag==true) {}//新手
             if (flag) {}//老手
             //Less is More!代码要精简易读
         }
     }

类型转换

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

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

  3. 强制类型转换

  4. 自动类型转换

代码

 public class TypeConversion {
     public static void main(String[] args) {
         //内存溢出
         int o = 128;
         byte b = (byte)o;
 ​
         //强制转换      高~~>低(类型)变量名
         //自动转换      低~~>高
 ​
         System.out.println(o);
         System.out.println(b);
 ​
         /*
         * 注意:
         * 1.不能对Boolean进行转换
         * 2.不能转换为不相干的类型
         * 3.高容量转换到低容量,需强制转换
         * 4.转换的时候可能出现内存溢出或精度丢失等问题
         * */
 ​
         System.out.println("==================");
         //精度丢失
         System.out.println((int)23.7);
         System.out.println((int)-45.89f);
 ​
 ​
         System.out.println("==================");
         char c = 'g';
         int d = c + 1;
         System.out.println(d);
         System.out.println((char)d);
 ​
 ​
         //操作比较大的数时,注意溢出问题
         //JDK7特性,数字之间可以使用下划线分割  _
         System.out.println("==================");
         int money = 10_0000_0000;
         int years = 20;
         int m = money * years;//-1474836480,计算结果溢出
         long m1 = money * years;//默认是int,转换之前已经存在问题
         long m2 = money * ((long)years);//先把一个数转换为long
         System.out.println(money);
         System.out.println(m);
         System.out.println(m1);
         System.out.println(m2);
 ​
         //float类型最好使用大写L来注明
     }
 }
 ​

变量

  1. 变量是什么:就是可以变化的量!

  2. Java是一种强制类型语言,每个变量都必须声明其类型。

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

注意事项:

  1. 每个变量都有类型,类型可以是基本类型,也可以是应用类型。

  2. 变量名必须是合法的标识符。

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

代码

 public class Variable {
     public static void main(String[] args) {
         //int a,b,c
         //int a=1,b=2,c=4;//写程序注重程序的可读性,代码要简洁
         String name = "ZL";
         char x = 'X';
         double pi = 3.1415;
 ​
     }
 }

变量作用域

  1. 类变量

  2. 实例变量

  3. 局部变量

代码

 public class VariableScope {
 ​
     //类变量   static      (从属于类,伴随着类一起出现一起消失)
     static double salary = 2500;
 ​
     //属性:变量
 ​
     //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 (数值类型初始化值-->0或0.0)十六进制为u0000
     //布尔值:默认值是false
     //除了基本类型,其余的默认值都是null(空);
     String name;
     int age;
 ​
     //main方法
     public static void main(String[] args) {
 ​
         //局部变量;必须声明并初始化值
         int i = 0;
         System.out.println(i);
 ​
         //变量类型      变量名字 = new VariableScope();
         VariableScope variablescope = new VariableScope();
         System.out.println(variablescope.age);
         System.out.println(variablescope.name);
 ​
         //类变量   static
         System.out.println(salary);
     }
 ​
     //其他方法
     public void add(){
     }
 }

变量的命名规范

  1. 所有变量、方法、类名。见名知意

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

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

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

  5. 类名:首字母大写驼峰原则:Many,GoodMan

  6. 方法名:首字母小写和驼峰原则:run(),runRun()

常量

  1. 常量(Constant):初始化(initialize)后不能改变值!不会变动的值。

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

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

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

运算符

Java支持以下运算符:优先级(一元运算符-->加减乘除-->we)

  1. 算术运算符:+,-,*,/,%,++,--

代码1

 package operator;
 ​
 public class Demo01 {
     public static void main(String[] args) {
 ​
         //二元运算符
         //Ctrl + D :复制当前行到下一行
         int a = 100;
         int b = 20;
         int c = 25;
         int d = 25;
 ​
         System.out.println(a+b);
         System.out.println(a-b);
         System.out.println(a*b);
         System.out.println(a/b);
     }
 ​
 }

代码2

 package operator;
 ​
 public class Demo04 {
     public static void main(String[] args) {
         //++,-- 自增,自减   一元运算符
         int a = 6;
 ​
         int b = a++;//执行完这条代码后,先给b赋值,再自增;即  b=a;a = a+1
         //a++   a = a+1;
         System.out.println(a);
 ​
         int c = ++a;//执行完这条代码后,先自增,再给c赋值
 ​
         System.out.println(a+++b);
         System.out.println(b);
         System.out.println(c);
     }
 }

  1. 赋值运算符=

代码

 package operator;
 ​
 public class Demo02 {
     public static void main(String[] args) {
         long a = 321654987;
         int b = 15;
         short c = 8;
         byte d = 3;
         System.out.println(a+b-c+d);//long类型
         System.out.println(b+c+d);//Int类型
         System.out.println((double)(c+d));//Int类型       cast:转换
         // 使用string强制类型转换可看到(c+d)为int类型
     }
 }

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

代码

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

  1. 逻辑运算符:&&,||,!

代码

 package operator;
 ​
 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));//逻辑非运算:运算为真,结果为假,运算为假,结果才为true
 ​
         //短路运算
         int c = 5;
         boolean d = (c<4)&&(c++>4);
         System.out.println(d);
         System.out.println(c);
     }
 }

  1. 位运算符:&,|,^,~,>>,<<,>>>(了解!!)

代码

 package operator;
 ​
 public class Demo06 {
     /*
     A = 0011 1100
     B = 0000 1101
     ==================
     A&B=0000 1100
     A|B=0011 1101
     A^B=0011 0001
     ~A =1100 0011
     ~B =1111 0010
 ​
     2*8=16 2*2*2*2    ---计算机计算数值时将数值进行拆分
     效率高!!!
     <<  *2
     >>  /2
 ​
     0000 0000   0
     0000 0001   1
     0000 0010   2
     0000 0100   4
     0000 1000   8
     0001 0000   16
      */
 }

  1. 条件运算符?:

代码

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

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

代码

 ​

包机制

  1. 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间(包的本质是文件夹)。

  2. 包语句的语法格式为:

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

  2. 为了能够使用某一个包的成员,我们需要在java程序中明确导入改包。使用”import“语句可完成此功能

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

JavaDoc

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

  2. 参数信息

    1. @author作者名

    2. @version版本号

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

    4. @param参数名

    5. @return返回值情况

    6. @throws异常抛出情况

 package com.practice.operator;
 ​
 /**
  * @author g'l
  * @version 1.0
  * @sinnce 1.8
  */
 public class Doc {
 ​
     String name;
 ​
     /**
      * @author g'l
      * @param name
      * @return
      * @throws Exception
      */
     public String test(String name) throws Exception {
         return name;
     }
     //通过命令行,在.java文件目录下,使用cmd命令,输入javadoc 参数 java文件
     //亦可使用idea产生javaDoc文件
 }

什么是字节

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

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

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

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

  5. 1bit=1位;1B(byte)=8b(bit);1024B=1KB;1024KB=1M;1024M=1G;1024G=1TB.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点雨戏阑珊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值