Day003 20210208

Day 003 20210208

昨天看得太晚了,没记录下来,现在记录一遍,就当作是复习这些基础了。

注释

单行注释

// 我是一只猫(//后有一个空格,即“// ”)

多行注释

/*
是一只黑猫(首行“/*”,末行“*”+“/”,中间文本)
*/

文档注释

/**
* @author blackblackcat(作者名)
* @version 1.0(版本号)
* @since 1.8(最早使用的jdk版本)
* @param 参数名
* @return 返回值情况
* @throws 异常抛出情况
*/

标识符

注意不能漏掉";"。

Java所有类名、变量名、方法名都被称为标识符

所有标识符首字母只能为“AZ,az,$,_”,共54个;

所有标识符其他字母只能为“AZ,az,0~9,$,_”,共64个;

不能使用关键字作为变量名或方法名;

标识符是大小写敏感的;

可以使用中文或拼音,但不建议。

强类型语言,所有变量必须先定义后才能够使用。

数据类型

基本数据类型(primitive type)——八大基本数据类型

数值类型
整数类型

byte 1字节 -27~(27-1)

byte a = 5;

short 2字节 -215~(215-1)

short b = 30;

int 4字节 -231~(231-1)

int c = 50;

long 8字节 -263~(263-1)

long d =1023839929819102090L; // L代表long,不要写成小写的l,以免和数字1混淆。
浮点类型

float 4字节

float i = 1.5F; // F代表float.

double 8字节

double j = 20.0;

注意:float和double可能导致精度丢失,所以最好完全避免使用浮点类型进行比较。

字符类型

char 2字节

char name1 = 'A'; // 一个字母,不能'AB';单引号('A'),而不是双引号("A")。
//
char name2 = '猫'; // 一个汉字,不能'熊猫';单引号('猫'),而不是双引号("猫")。
boolean类型(布尔类型)

boolean 1位(不是一字节) 只有truefalse两个值。

boolean flag1 = true;
boolean flag2 = false;
注意点

数据之间可以用_划分,而不影响数值。

int = 10_0000_0000

引用数据类型(reference type)

接口
数组

数据扩展类型——进制

二进制八进制十进制十六进制
前缀0b00x
int e = 10; // e = 10
int f = 0b10; // f = 2
int g = 010; // g = 8
int h = 0x10; // h = 16

类型转换

低---------------------------------------------------------------------------->高

byte, short, char-----> int-----> long-----> float-----> double

运算时,不同类型的数据先转换为同一类型,然后进行运算。

强制类型转换

从高到低强制转换

int k = 128
byte m = (byte)k // 强制转换,内存溢出
// (类型)变量名

自动类型转换

从低到高自动转换

int k = 128
double n = k // 自动转换

注意点

  1. 不能对布尔值进行转换。
  2. 不能把对象类型转换为不相干的类型。
  3. 高到低强制转换。
  4. 在转换过程中可能遇到内存溢出,或者精度问题。

变量

变量要素包括变量名、变量类型和作用域

变量名采用lower驼峰式,类名采用Upper驼峰式。

驼峰式:除首词外单词首字母大写。

lower驼峰式:首词首字母小写,除首词外单词首字母大写。

Upper驼峰式:首词首字母大写,除首词外单词首字母大写。

包名全小写。

类变量

有"static"关键词

实例变量

无"static"关键词

局部变量

public class Variable{
    static int allClicks = 0; // 类变量 static
    String str = "hello world"; // 实例变量:从属于对象。如果不存在初始化值,则基本类型默认为0,0.0,u0000,false(不是true),(0,0.0,u0000,false都是0);非基本类型默认为null(null也是0)。
    
    public void method(){
        int i = 0; // 局部变量:必须申明初始值
    }
}

常量(Constant)

初始化(initialize)后不能再改变值。

final double PI = 3.14; // final 类型 常量名 = 值

常量名使用大写字母,之间用_连接。

static final double CAT_CAT_CAT = 3; // static与final为修饰符,不存在先后顺序
final static double CAT_CAT_CAT = 3;

变量名,类名,方法名,常量名均需要见名知意

运算符

优先级:多用"()"

算数运算符

二元运算符

“+”, “-”, “*”, “/”

int o = 10;
int p = 20;
int q = 30;
int r = 50;

System.out.println(o+p);
System.out.println(o-q);
System.out.println(p*q);
System.out.println(o/r); // 0  原因:o,r均是int型的,o/r = 0.2被转化为int型,故为0。
System.out.println(o/(double)r); // 0.2
// 如果参与计算的数据最高的类型为double类型,则结果为double类型;
// 如果参与计算的数据最高的类型为float类型,则结果为float类型;
// 如果参与计算的数据最高的类型为long类型,则结果为long类型;
// 如果参与计算的数据均不为long类型,则结果为int类型。
一元运算符(自增、自减)

“++”, “–”

int u = 1;
System.out.println(u); // 1
int v = u++; // 先把v赋值为u,再令u = u + 1;
System.out.println(u); // 2
System.out.println(v); // 1
int w = ++u; // 先令u = u + 1;再把w赋值为u
System.out.println(u); // 3
System.out.println(w); // 3
取模

“%”

输出余数

int s = 213;
int t = 5;
System.out.println(s%t); // 3
幂运算
double pow = Math.pow(2,3); // 2^3

赋值运算符

关系运算符

“>”, “<”, “>=”, “<=”, “==”, “!=”, “instanceof”

输出为布尔值 true false

逻辑运算符

“&&”, “||”, “!”(与,或,非)

boolean x = true;
boolean y = false;

System.out.println(x && y); // false x与y
System.out.println(x || y); // true x或y
System.out.println(!(x && y)); // true 非(x与y)
短路运算

在与运算"&&“中,由于只要有一边为false,结果就为false,故当”&&"左侧为false时,不会计算右侧是true还是false,而是直接得出结果。验证方法:

int z = 5;

boolean aa = (z < 4) && (z++ < 4) // (z < 4)为false,故aa直接为false,若检查(z++ < 4)是否为false,则z = z + 1,最后得出z值为5;否则最后得出z值为4.
System.out.println(z) // 4 即没有检验(z++ < 4)是否为false。

位运算符

“&”, “|”, “^”, “~”(与,或,异或,非)

/*
A = 1100 0110;
B = 1010 0001;

A&B = 1000 0000; 与 比较A与B的每一位,同为1才为1。
A|B = 1110 0111; 或 比较A与B的每一位,同为0才为0。
A^B = 1001 1000; 异或 比较A与B的每一位,相同才为1。
~B = 0101 1110; 非 此处为非B,将B的每一位取非。
*/

“>>”, “<<”(右移,左移)

由于计算机不能直接做乘除法,因此左移和右移是效率极高的方式。

/*
<< 左移,在末尾加个0,相当于乘以2。
>> 右移,删除末尾位,相当于除以2再舍去小数部分。
*/
System.out.println(5>>1); // 2 5与1所在的位置不能为float类型与double类型。

条件运算符

三元运算符

“?”+":"

// x ? y : z 若x = true,则执行y;否则执行z。
int af = 10;
System.out.println(af < 20 ?"a":"b"); // a

扩展赋值运算符

“+=”, “-=”, “*=”, “/=”

“偷懒的写法”

int ab = 10;
int ac = 20;

ab += ac; // ab = ab + ac;
ab -= ac; // ab = ab - ac;
ab *= ac; // ab = ab * ac;
ab /= ac; // ab = ab / ac;

包机制

package pkg1[.pkg2[.pkg3...]]; // 一般利用公司域名的倒置作为包名,如 com.baidu.www 防止重复
// 导入包
import package1[.package2...].(classname|*); // 写在整个类的最上面,且在package的下面。

Tips

  1. 输出分割线

    System.out.println("===============================")
    
  2. 转义字符

    \t 制表符

    \n 换行

    。。。

  3. 复制该行代码至下一行 ctrl + D,(鼠标点在行末尾,不选中。)

  4. 字符串连接符"+",只要"+"两边至少有一边是String类型,则会将另一边也转换为String类型,并连接。

    int ad = 10;
    int ae = 20;
    
    System.ou.println(""+ad+ae); // 1020 先""+ad,将ad转换成为了String类型,变为10,String类型的10再和int类型的20相加,将ae转换为String类型,得到结果为String类型的1020。
    System.ou.println(ad+ae+""); // 30 先ad+ae,两边均是int类型的,得到结果int类型的30,再与""相加,将int类型的30转换为String类型的30,得到结果为String类型的30。
    
  5. 用命令行生成(windows+R CMD)

    javadoc Demo08.java // 在Demo08的地址后输入这段,Demo08为项目名称。
    javadoc -encoding UTF-8 -charset UTF-8 Demo.java // 中间一段是为了防止项目中的中文生成乱码。
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值