狂神说java之004.Java基础语法

004.Java基础语法

一、注释、标识符、关键字

(一)注释

◆平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
◆注释并不会被执行,是给我们写代码的人看的
◆书写注释是一个非常好的习惯;平时写代码一定要注意规范

◆Java中的注释有三种:

  1. 单行注释 //
  2. 多行注释 /* */
  3. 文档注释

(二)关键字

(三)标识符

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

◆标识符注意点

  • 所有的标识符都应该以字母A-Z或者a-z、美元符$、或者下划线_开始
  • 首字符之后可以是字母A-Z或者a-z、美元符$、下划线_或数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感的
  • 合法标识符举例: age,$salary,value,_1_value
  • 非法标识符举例: 123abc,-salary, #abc
  • 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low

二、数据类型

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

(一)分类

Java的数据类型分为两大类
◆基本类型(primitive type)
◆引用类型(reference type)

(二)什么是字节

  1. 位(bit) :是计算机内部数据储存的最小单位,11001100是一个八位二进制数
  2. 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
  3. 1B (byte,字节) = 8bit (位)
  4. 字符:是指计算机中使用的字母、数字、字和符号
  • 1bit表示1位,
  • 1Byte表示一个字节1B=8b。
  • 1024B=1KB
  • 1024KB=1M
  • 1024M=1G

思考:电脑的32位和64位的区别是什么呢?

(三)数据类型拓展和面试题讲解

//============================================
//整数拓展:进制 二进制b   十进制0b 八进制0 十六进制0x
//===========================================
int i = 10int i2 = 010//八进制
int i3 = 0x10//十六进制0x    0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//注意:表示进制时末尾添加的0、0x、0b是数字0,不是字母O


//==============================
//浮点数拓展 银行业务怎么表示?钱
// BigDecimal 数学工具类
//================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
//最好完全使用浮点数进行比较
float f = 0.1f//0.1
double d = 1.0/10//0.1
    
    
    
//====================
//字符拓展
//====================
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字节 0- 65536   Excel  
//2的16次方=65536
// U0000  UFFFF
char c3 = '\u0061';
System.out.println(c3); //a

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


//===============================
String sa = new String( original: "hello world");
String sb = new String( original: "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是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
--------------------
byte, short, char-> int -> long-> float -> double
◆运算中,不同类型的数据先转化为同一类型,然后进行运算。

  1. 强制类型转换:高到低 (类型)变量名 byte b =(byte)i;
  2. 自动类型转换:低到高

(二)注意点

  1. 不能对布尔值进行转换

  2. 不能把对象类型转换为不相干的类型

  3. 在把高容量转换到低容量的时候,强制转换

  4. 转换的时候可能存在内存溢出,或者精度问题!

  5. JDK7新特性,数字之间可以用下划线分割
    比如int money = 10_0000_0000;输出money发现值为1000000000.

//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000int years = 20int total = money*years; //-1474836480 ,计算的时候溢出了
long total2 = money*years; //默认是int,转换之前已经存在问题了
long total3 = money*((long)years); //先把一个数转换为Long
System.out.println(total3);

四、变量、常量

(一)变量

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

type varName[=value][,varName[=value]];
//数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量.

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

//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L; //Long类型要在数字后面加个L

//小数:浮点数
float num5 = 50.1F; //float类型要在数字后面加个F
double num6 = 3.141592653589793238462643;


//字符
char name = 'x';
//字符串,String不是关键字,类
//String namea = "大家好";


//布尔值:是非
boolean flag = true;
//boolean flag = false;

(二)变量作用域

  • 类变量
  • 实例变量:从属于对象;如果不自行初始化,就为这个类型的默认值。整数类型默认值0,浮点类型默认值0.0,布尔值默认是false。除了基本类型,其余的默认值都是null。
  • 局部变量:必须声明和初始化值。
public class Variable{
static int allClicks=0;//类变量
String str="hello world";//实例变量
public void method(){
int i=0; //局部变量
}
}

(三)变量的命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰原则: 除了第一个单词以外,后面的单词首字母大写monthSalary,lastName
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线: MAX VALUE
  5. 类名:首字母大写和驼峰原则:Man,GoodMan
  6. 方法名:首字母小写和驼峰原则:run(), runRun()

(四)常量

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

final 常量名=;
final double PI=3.14;

◆常量名一般使用大写字符

五、运算符

Java语言支持如下运算符:

  1. 分享一个IntelliJ IDEA快捷键:ctrl+d 作用是复制当前行到下一行。

  2. 关系运算符返回的结果:正确,错误;布尔值。

  3. ++自增,–自减;一元运算符;int b= a++是执行完这行代码后,先给b赋值,再自增;int c= ++a是执行完这行代码前,先自增,再给c赋值。

  4. 很多运算,我们会使用一些工具类来操作。比如要计算幂运算3的2次方:double pow = Math.pow(3,2)。

  5. 逻辑运算符:与(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)); 
    //如果是真,则变为假,如果是假则变为真
    
  6. 注意短路运算短路与:只要碰到了false或者等价于false的就短路,只要短路了就不会继续往后执行了。如果短路了,得到造成短路的这个值,如果不短路,得到的是第二个值。短路或:只要碰到了true或者等价于true的就短路,只要短路了就不会继续往后执行了。如果短路了,得到造成短路的这个值,如果不短路,得到的是第二个值。需要注意的是:&& 和 || 的结果不一定是布尔类型,短路或一般用于设置函数的默认参数。

  7. 位运算:效率极高
    A=0011 1100
    B = 0000 1101
    A&B = 0000 1100
    A/B= 0011 1101
    A^Β = 0011 0001
    ~B = 1111 0010
        <<  *2
        >>  /2
    
  8. 字符串连接符+。

    int a= 10;
    int b= 20;
    a+=b; //a = a+b
    a-=b; //a = a-b
    System.out.println(a);
    //字符串连接符+ ,String
    System.out.println(""+a+b);//1020 字符串在前面,拼接
    System.out.println(a+b+"");//30 字符串在后面,运算
    
  9. 三元运算符 x?y:z 如果x==true,则结果为y,否则结果为z。

六、包机制、JavaDoc

(一)包机制

◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[. pkg2[. pkg3…]];
一般利用公司域名倒置作为包名
◆为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可
完成此功能
import package1[. package2…]. (classname | *);

(二)JavaDoc

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

◆参数信息

  • @author 作者名
  • @version版本号
  • @since指明需要最早使用的jdk版本
  • @param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值