5,JAVA基础 语法

 

目录

  1. 注释、标识符、关键字

  2. 数据类型

  3. 类型转换

  4. 变量、常量

  5. 运算符

  6. 包机制、JAVADoc

1,注释、标识符、关键字

书写注释是一个非常好的习惯

单行注释:// 注释

多行注释:/* 注释 */

文档注释:/** 注释 */ 通常和一个命令 JavaDoc结合使用,生成帮助文档,可以添加@等符号


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

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

首字母之后可以 是字母()、美元符()、下划线()、或数字的任何字符组合;

不能使用关键字作为变量名或方法名,标识符是大小写敏感的;

变量或类名可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音。

关键字:

java关键字-百度

关键字

2,数据类型

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

Java的数据类型分为两大类:基本类型,引用类型

基本数据类型数值类型整数byte占1个字节:-128-127
      short占2个字节:-32768-32767
    21亿 int占4个字节:-2147483648-2147483647
      long占8个字节:-9223372036854775808-
      9223372036854775807
    浮点 float占4个字节,范围同int
      double占8个字节,范围同long
    字符 char占2个字节
  boolean   占1位,只有true或false
引用数据类型     类,接口,数组

字符串

 String str="Hello Java";//字符串第一种定义方式
 String str;
 str="Hello Java";//字符串第二种定义方式

变量

每个变量都有类型,类型可以使基本类型或引用类型,变量名必须是合法的标识符。

字节

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

字节(byte):用B来表示,1B(byte,字节)=8bit(位)

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

 public class Demo02 {
     public static void main(String[] args) {
         String a;
         //八大基本数据类型
         //整数.输入Integer, Byte等,ctrl左键即可查看大小范围
         int num1=10;//最常用
         byte num2=20;
         short nm3=30;
         long num4=30L;//long类型要在数字后面加个L
         //小数:浮点数
         float num5=50.1f;//float类型要在后面加个F
         double num6=3.1415926;
         //字符,单引号
         char name='A';
         char name2='请';//char name3='秦疆';就会报错,字符只能定义单个单位
         //字符串,String不是关键字,是类。双引号
         String namaa="秦疆";
         //布尔值
         boolean flag=true;
         boolean flag2=false;
         //除了基本数据类型之外的都叫引用数据类型
    }
 }
 public class Demo03 {
     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);//十六进制0x 0-9 A-F
         System.out.println("============================================");
         //浮点数拓展 银行业务怎么表示?钱
         float f = 0.1f;
         double d = 1.0 / 10;
         System.out.println(f == d);//结果是false
         System.out.println(f);
         System.out.println(d);
         float d1 = 23132332332321232331f;
         float d2 = d1 + 1;
         System.out.println(d1 == d2);//结果是true
         //最好完全避免使用浮点数进行比较!!!
         //银行业务可用BigDecimal 数学工具类 用于小数比较
         System.out.println("===========================================");
         //字符拓展
         char c1 = 'a';
         char c2 = '中';
         System.out.println((int) c1);//强制转换
         System.out.println((int) c2);
         //所有的字符本质还是数字
         //Unicode,2字节,0-65536
         char c3 = '\u0061';
         System.out.println(c3);
         System.out.println("===========================================");
         //转移字符
         //\t 制表符,\n 换行
         System.out.println("===========================================");
         String sa = new String("hello world");
         String sb = new String("hello world");
         System.out.println(sa == sb);//false
         String sc = "hello world";
         String sd = "hello world";
         System.out.println(sc == sd);//true,new会新建一个内存空间
         System.out.println("===========================================");
         //布尔值拓展
         boolean flag = true;
         if (flag == true) { }
         if (flag) { }//这两组代码意思一样,less is more,代码要精简易读。
    }
 }

 

3,类型转换

容量由低到高:byte, short, char, int, long, float, double,运算中,不同类型的数据先转化为同一类型,然后进行运算。

强制类型转换

自动类型转换

 public class Demo04 {
     public static void main(String[] args) {
         int i=128;
         byte b=(byte)i;
         System.out.println(i);//128
         System.out.println(b);//-128,内存溢出
         //强制转换 (类名)变量名 高-低
         double c=i;
         System.out.println(c);//128.0
         //自动转换   低-高
         /*
         注意点:
         1,不能对布尔值进行转换
         2,不能把对象类型转换成不相干的类型
         3,在把高容量转换到低容量的时候,强制转换
         4,转换的时候可能存在内存溢出,或是精度问题
          */
         System.out.println("=======================================");
         System.out.println((int)23.7);//23
         System.out.println((int)-45.89f);//-45
         System.out.println("=======================================");
         char c1='a';
         int d=c1+1;
         System.out.println(d);//98
         System.out.println((char)d);//b
         System.out.println("=======================================");
 
         //操作比较大的数的时候,注意溢出问题
         int money=10_0000_0000;
         int years=20;
         int total=money*years;
         System.out.println(total);//-1474836480
         long total2=money*years;//结果默认为int类型,容量已经超出了
         System.out.println(total2);//-1474836480
         long total3=money*((long)years);
         System.out.println(total3);//20000000000
    }
 }
 

4,变量和常量

变量:每个变量都有类型,类型可以是基本类型或引用类型,变量名必须是合法的标识符。变量申明是一条完整的语句,因此每一个声明都必须以分号结束。其要素包括变量名,变量类型和作用域。依据变量的作用域可将变量分为类变量,实例变量和局部变量。

 public class Variable{
     static int allClicks=0; //类变量,关键词static
     String str ="hello world";//实例变量,方法外面类里面
     public void method(){
         int i=0; //局部变量,在方法里
    }
 }
 public class Demo06 {
     //类变量 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();
         Demo06 demo06 = new Demo06();
         System.out.println(demo06.age);
         System.out.println(demo06.name);
 
         //类变量 static
         System.out.println(salary);
    }
     //其他方法
     public  void add(){
    }
 }

常量(Constant):初始化(initialize)后不能在改变值,不会变动的值,可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。常量明一般使用大写字符。

 final 常量名=值;
 final double PI=3.14;
 public class Demo09 {
     //变量类型前的限定词为修饰符,不存在先后顺序,static final或final static都可
     static final double PI=3.14;
     public static void main(String[] args) {
         System.out.println(PI);
    }
 }

变量的命名规范

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

  • 类成员变量:首字母小写和驼峰原则:monthSalary,除首单词以外的单词首字母大写

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

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

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

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

5,运算符

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

  • 赋值运算符:=

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

  • 逻辑运算符:&&,||,!

  • 位运算符:&,|,^,~,>>,<<,>>>

  • 条件运算符:?,:

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

//算数运算符
package operator;
public class Demo01 {
public static void main(String[] args) {
//ctrl+D是复制当前行到下一行。
int a=10;
int b=20;
System.out.println(a/b);//0
System.out.println(a/(double)b);//0.5
System.out.println("===================================================");
int c=1212121211;
int d=123;
short e=10;
byte f=8;
System.out.println(c+d+e+f);//有long类型,结果为long类型
System.out.println(d+e+f);//int
System.out.println(e+f);//int
//结果依据容量大小输出,优先级为double,long,int
}
}
package operator;
public class Demo02 {
public static void main(String[] args) {
int a=3;
int b=a++;//先将a赋值给b,在自加,所以b=3,a=4,
int c=++a;//先自加,在赋值给c,所以a=5,c=5
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
package operator;
//位运算符

一.原码

1>.正数的原码就是它的本身

  假设使用一个字节存储整数,整数10的原码是:0000 1010

2>.负数用最高位是1表示负数

  假设使用一个字节存储整数,整数-10的原码是:1000 1010

 

二.反码

1>.正数的反码跟原码一样

  假设使用一个字节存储整数,整数10的反码是:0000 1010

2>.负数的反码是负数的原码按位取反(0变1,1变0),符号位不变

  假设使用一个字节存储整数,整数-10的反码是:1111 0101

 

三.补码(再次强调,整数的补码才是在计算机中的存储形式。)

1>.正数的补码和原码一样

  假设使用一个字节存储整数,整数10的补码是:0000 1010(第三次强调:这一串是10这个整数在计算机中存储形式)

2>.负数的补码是负数的反码加1

  假设使用一个字节存储整数,整数-10的补码是:1111 0110(第三次强调:这一串是-10这个整数在计算机中存储形式)

 

正数原码反码补码一样

负数反码减一取反得原码,符号位在这个过程中始终不变


public class Demo06 {
public static void main(String[] args) {
/*
A=00111100
B=00001101

A&B 00001100 双1得1,除此以外都为0
A|B 00111101 有1为1
A^B 00110001 相同为0,相异为1
~B 11110010 取反

<<左移,左移一位相当于乘2
>>右移,右移一位相当于除2,位运算效率极高
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);//结果等于16
}
}
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));//false
System.out.println("a||b"+(a||b));//true
System.out.println("!(a&&b)"+!(a&&b));//true
}
}
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);//30

//字符串连接符 +
System.out.println(a+b);//50
System.out.println(""+a+b);//3020
System.out.println(a+b+"");//50
}
}
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);
}
}

优先级:

6,包机制

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

包语句的语法格式为

package pkg1[. pkg2[. pkg3...]];
package com.kuang.operator;

一般利用公司域名倒置作为包名;

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

import package1[.package2...].(classname|*);
import com.kuang.base.Demo01;
import com.kuang.base.*//引入这个包下所有的类
搜索“阿里巴巴JAVA开发手册”

=============================JAVADoc===================================================

posted @ 2021-06-21 12:21  林涉江  阅读(40)  评论(0)    收藏  举报