java入门(二) 语法

java入门(二) 语法

一 注释

1)单行注释

//这是单行注释
int a = 10;

2) 多行注释

/*
这是多行注释
*/
int a = 10;

3)文档注释

/**
 * @author SixA
 * @version 1.0
 * 这是文档注释
 */
public class Hello{
    
}

二 标识符

1)关键字(系统保留字)

abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

2)标识符规则

  1. 所有标识符都应该以字母(A-Z 或 a-z),美元符($),或者下划线开始(_)开始
  2. 首字符之后可以是字母(A-Z 或 a-z),美元符($),下划线(_)或数字的任何字符组合
  3. 不能使用关键字作为变量名、方法名或类名
  4. 标识符是大小写敏感
  5. 可以使用中文命名,但一般不建议这样使用,也不建议使用拼音,很low

三 数据类型

强类型语言

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

​ java,c,c++等

弱类型语言

​ javaScript,python等

java数据类型分为两大类

基本数据类型(primitive type)
数值类型

整数类型

类型占用字节(B)范围
byte1-128 - 127
short2-32678 - 32767
int4-2147483648 - 2147483647
long8-9223373036854775808 - 9223373036854775807

浮点类型

类型占用字节(B)
float4
double8

字符类型

类型占用字节(B)
char2
boolean类型

boolean 占一位,其值只有true和false

引用数据类型(reference type)
接口
数组

数据类型注意点

  1. 在定义float类型时,要在后面加上F,在定义long类型时,要在后面加上L
float a = 1.0F
long b = 10000L
  1. 尽量避免使用浮点类型作比较(使用BigDecimal)

     float a = 0.1F;
     double b = 1.0/10;
     System.out.println(a==b);//false
     float c = 232323232332232323F;
     float d = c + 1;
     System.out.println(c==d);//true
    
  2. 二进制以0b开头,八进制以0开头,十六进制以0x开头

      int a = 0b10;
      int b = 010;
      int c = 0x10;
      System.out.println(a);//2
      System.out.println(b);//8
      System.out.println(c);//16
    
  3. jdk7新特性,在表示大数时可以加上下划线,对数据本身不会影响,只为了便于阅读

    int a = 10_0000_0000;
    System.out.println(a);//1000000000
    
  4. 字符本质上还是以数字存储,而且两者可以相互转换

    int a = 70;
    System.out.println((char)a);//F
    char c = 'F';
    System.out.println((int)c);//70
    

四 类型转换

强制类型转换(大类型转小类型)

int a = 10;
byte b = (byte) a;

自动类型转换(小类型装大类型),也可以显示转换

byte a = 10;
int b = a;

byte c = 10;
int d = (int)c;

注意点

  1. 不能对布尔值(boolean)进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转低容量的时候强制转换,可能存在溢出或精度问题
  int a = 128;
  byte b = (byte)a;
  System.out.println(b);//-128   溢出
  float c = 3.14F;
  int d = (int)c;
  System.out.println(d);//3  精度问题
  1. 操作大数时注意溢出问题

        int a = 1000000000;
        int b = 100;
        long c = a * b;
        System.out.println(c);//1215752192,在进行自动类型转换前已经溢出
        long d = (long) a * b;
        System.out.println(d);//100000000000,先进行类型转换,再进行计算,没有溢出
    

##五 变量

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

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

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

    int a;
    //变量类型  +  变量名 = 变量值
    

注意事项

  1. 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  2. 变量名必须是合法的标识符

作用域

类变量,实例变量,局部变量

public class Hello{
    static int a;//类变量,不需要初始化
    int b;//实例变量(属性),不需要初始化,默认值为0
    String s;//实例变量(属性),不需要初始化,默认值为null,除基本类型,其他类型都是null
    //hello方法
    void hello(){
        int c = 1;//局部变量,必须声明和初始化
    }
}

六 基本运算符

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

int a = 10;
int b = 5;
int c = a + b;//15
int d = a - b;//5
int e = a * b;//50
int f = a / b;//2
int g = a % b;//0
int h = a++;//11
int i = a--;//9

赋值运算符:=

int a = 10;

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

int a = 10;
int b = 5;
System.out.println(a>b);//true
System.out.println(a<b);//false
System.out.println(a==b);//false
System.out.println(a!=b);//true
System.out.println(a>=b);//true
System.out.println(a<=b);//false

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

 boolean a = true;
 boolean b = false;
 System.out.println(a && b);//false
 System.out.println(a || b);//true
 System.out.println(!a);//false

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

/*
A = 1001 1101
B = 1100 1011
A & B = 1000 1001
A | B = 1101 1111
A ^ B = 0101 0110
~A = 0110 0010
*/
int a = 2;
System.out.println(a >> 1);//1,相当于a/2,若操作的值为正,则在高位插入0;若值为负,则在高位插入1。
System.out.pringln(a << 3);//16,相当于a*2*2*2
System.out.println(a >>> 1);//1,无符号右移:忽略了符号位扩展,0补最高位  无符号右移运算符>>> 只是对32位和64位的值有意义。

条件运算符:? :

int a = 10;
int b = a > 5 ? 6 : 7;
System.out.println(b);//6

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

int a = 5;
int b = 6;
a += b;//相当于a = a + b;
a -= b;//相当于a = a - b;
a *= b;//相当于a = a * b;
a /= b;//相当于a = a / b;

七 包机制

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

  2. 包语句的语法格式为

    package 包名.包名.包名…;

    package com.sixa;
    public class Hello{
        
    }
    
  3. 一般利用公司域名倒置作为包名

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

    package com.sixa;
    import java.util.Date;
    
    public class Hello{
        Date date = new Date(); 
    }
    

    注意

    1. package语句必须在第一行
    2. 可以使用import java.util.*;导入该包下的所有类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值