Day 004 狂神java基础第一阶段

java

注释

  • 单行注释

//单行注释

  • 多行注释

/*  多行注释

多行注释

*/

  • 文档注释

/**

*@文档注释

*@文档注释

*/

标识符

关键字:关键字不能用来作为类名(文件名)

类名、变量名以及方法名都被称为标识符

注意

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

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

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

  • 标识符是大小写敏感的

  • 合法标识符举例:

    age、&salary、_value、__1

  • 非法标识符举例:

    123abc、-salary、#abc

  • 变量尽量使用英文命名,不用中文或者拼音

数据类型

强类型语言

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
  • 安全性高,速度慢
  • Java为强类型语言

弱类型语言

  • 变量的使用符合规定,

  • 安全性低,速度快

Java的数据类型

  • 基本类型(primitive type)

    包含数值类型和Boolean(布尔)类型

    数值类型:包含整数类型(1-4)、浮点类型(5、6)和字符类型在(7)

    布尔值类型:占1位,值只有 true 和 false 两种

 //八大基本数据类型

//整数

int num1 = 10;//最常用

byte num2 = 20;

short num3 = 30;

long num4 = 40L;//Long类型要在数字后面加一个L

//小数:浮点数

float num5 = 50.1F;//float类型要在数字后面加一个F

double num6 = 3.141592653589793238462463;

//字符(代表一个"字“)

char name = '孙';

//字符串,String不是关键字,是一个类

String name1 = "手残的老孙";

//布尔值:是非

boolean flag = true;

//boolean flag = false;

  • 引用类型(reference type)

    ​ 包含 类、接口和数组三种

注意(拓展)

  • 进制类型

0,1//二进制

int i1 = 10;//十进制

int i2 = 010;//八进制0

int i3 = 0x10//十六进制0x

  • 最好完全避免使用浮点数进行比较

//float  有限   离散  舍入误差   大约    接近但不等于1

//double

//银行业务不能使用浮点数

float f = 0.1f; //0.1

double d = 1.0 / 10; //0.1

System.out.println(f==d); //判断 f 和 d 是否相等

//false

float d1 = 165413574986351674;

float d2 = d1 + 1;

System.out.println(d1==d2); //true

  • 所有的字符本质还是数字

    ​ Java使用Unicode表进行编码

    char c1 = 'a';

    char c2 = '中';

    System.out.println(c1);//a

    System.out.println((int) c1);//强制类型转换 97,a在表中值为97

    System.out.println(c2);//中

    System.out.println((int)c2);//20013

    char c3 = '\u0061';

    System.out.println(c3);//a

  • 转义字符

\t 

/*

制表符

前面的输出内容位数为8的倍数,\t将输出8个空格

前面的输出内容位数不是8的倍数,\t将补足8位

*/

\n //换行符

类型转换

变量内存容量高低

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

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

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

  • 强制类型转换
  • 自动类型转换

int i = 128;

byte b = (byte) i;//强制转换

double c = i;//自动转换

/*

强制转换: (类型)变量名 高----->低

自动转换: (类型)变量名 低----->高

*/

System.out.println(i);//128

System.out.println(b);//-128 byte最大为127, 内存溢出

System.out.println(c);//128.0

注意

  1. 不能对布尔值进行转换
  2. 不能吧对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,精度问题

System.out.println((int) 23.7);//23

System.out.println((int) -45.89f);//-45

System.out.println("==========================");

char c = 'a';

int d = c + 1;//char到int,低转高,自动转换

System.out.println(d);//98

System.out.println((char) d);//b 强制转换为字符型

  1. 操作比较大的数的时候,注意溢出问题

  2. JDK7 新特性,数字之间可以用下划线分割

int money = 10_0000_0000;

System.out.println(money);//1000000000

int years = 20;

int total1 = money * years;

System.out.println(total1);//-1474836480,数据溢出

long total2 = money * years;//先计算,后转换,转换之前就存在问题了

long total3 = money * ((long) years);//先进行类型转换,后输出

System.out.println(total3);//20000000000

变量

  • java是一种强类型语言,每个变量都必须声明其类型
  • java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域

  Type  varName [=value][{,varName[=value]}];

//数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量

//不建议在一行定义多个值

变量类型及作用域

  • 包含类变量、实例变量和局部变量三种

public class Demo08 {

//类变量 static

static double salary = 2500;

//属性:变量

//实例变量:在类里面,方法外面。从属于对象;如果不自行初始化,会变成这个类型的默认值

//布尔值默认是false

//除了基本类型,其余的默认值都是null

String name;//默认为null

int age;//默认为0

//main方法

public static void main(String[] args) {

//局部变量:在一个大方法里面。必须声明和初始化

int i = 10;

System.out.println(i);//10

// 变量类型 变量名字 = new Demo08;

Demo08 demo08 = new Demo08();

System.out.println(demo08.age);//0,数值类型变量的默认值

System.out.println(demo08.name);//null,字符或字符串类型变量的默认值

System.out.println(salary);//2500.0

}

注意

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

常量

constant:初始化(initialize)之后不能再改变值!不会变动的值。

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

final  常量名 = 值;

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

public class Demo09 {

static final double PI = 3.14;

//final static double PI = 3.14;final为修饰符,不存在先后顺序

public static void main(String[] args) {

System.out.println(PI);//3.14

}

}

命名规范

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

  • 类成员变量:首字母小写和驼峰原则:除了第一个单词以外,后面的单词首字母大写。monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

运算符

  • 算数运算符:+、-、*、/、%(取余,模运算)、++、--(自增自减运算符)

  • 赋值运算符:=

public class Demo01 {

public static void main(String[] args) {

//二元运算符

//Ctrl + D :复制当前行到下一行

int a = 10;

int b = 20;

int c = 25;

int d = 25;

System.out.println(c%a);//5,c/a=2余5

System.out.println(a + b);//30

System.out.println(a - b);//-10

System.out.println(a * b);//200

System.out.println(a / b);//0,只保留整数部分

System.out.println(a /(double) b);//0.5

}

}

public class Demo02 {

public static void main(String[] args) {

long a = 123123123123123L;

int b = 123;

short c = 10;

byte d = 8;

//多个变量操作中有一个数为long,那么结果类型为long

//若有double,则结果是double

System.out.println(a + b + c + d);//Long

//如果没有long,结果都为int,无论是否有int操作

System.out.println(b + c + d);//int

System.out.println(c + d);//int

}

}

public class Demo04 {

public static void main(String[] args) {

//++ -- 自增自减运算符 一元运算符

int a = 3;

//++在前,先自增,++在后,后自增

int b = a++;//执行完这行代码后,先给b赋值,之后再自增

System.out.println(a);//4

int c = ++a;//执行这行代码前,先给a自增,再给c赋值

System.out.println(a);//5

System.out.println(b);//3

System.out.println(c);//5

//幂运算,不可以直接使用^

double pow = Math.pow(2, 3);

System.out.println(pow);//8.0

}

}

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

public class Demo03 {

public static void main(String[] args) {

//关系运算符返回的结果: 正确,错误 布尔值

int a = 10;

int b = 20;

System.out.println(a>b);//false

System.out.println(a<b);//true

System.out.println(a==b);//false

System.out.println(a!=b);//true

}

}

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

public class Demo05 {

public static void main(String[] args) {

//逻辑运算符, 与(and) 或(or) 非(取反)

boolean a = true;

boolean b = false;

System.out.println("a && b:"+(a && b));//与运算,a && b:false

System.out.println("a || b:"+(a || b));//或运算,a || b:true

System.out.println("!(a && b):"+(!(a && b)));//非运算,!(a && b):true

//短路运算

int c = 5;

boolean d = (c < 4) && (c++ < 4);//当&&之前为假,则直接输出,不会运行后面的代码

System.out.println(d);//false

System.out.println(c);//5,说明没有运行c++

}

}

  • 位运算符:&(与), |(或), ^(非), ~(取反), >>, <<, >>>(了解即可!!!)

public class Demo06 {

public static void main(String[] args) {

/*

A=0011 1100

B=0000 1101

--------------------------------------

A&B = 0000 1100 对应位全为1则为1,否则为0

A|B = 0011 1101 对应位都为0则为0,否则为1

A^B = 0011 0001 对应位相同为0,不同为1

~B = 1111 0010

如何计算2*8

2*8 = 2*2*2*2

<<位左移 *2

>>位右移 /2

*/

System.out.println(2<<3);//16

}

}

  • 条件运算符:? :

public class Demo08 {

public static void main(String[] args) {

//三元运算符

//x ? y : z

//如果x==true,则结果为y,否则结果为z

int score1 = 80;

int score2 = 50;

String type1 = score1 < 60 ? "不及格" : "及格";

String type2 = score2 < 60 ? "不及格" : "及格";

System.out.println(type1);//及格

System.out.println(type2);//不及格

}

}

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

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

//字符串连接符 +

//在加号两侧只要有一个是字符串类型(string),会将其他计算结果转换成字符串类型然后进行连接

System.out.println(a + b);//30

System.out.println("c" + a + b);//c1020

System.out.println(a + b + "c");//30c

}

}

运算符优先级

包机制

  • 包的本质就是文件夹

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

  • 使用import导入包

JavaDoc

  • 用来生成自己的API文档

参数信息

  • @author 作者名

  • @version 版本号

  • @science 知名需要最早使用的jdk版本

  • @param 参数名

  • @return 返回值情况

  • @throws 异常抛出情况

使用IDEA生产JavaDoc文档

使用IDEA生成JavaDoc文档(2种方法)_晰烟的博客-CSDN博客_使用idea生成javadoc文档

以上是 Day 004 狂神java基础第一阶段 的全部内容, 来源链接: utcz.com/z/395084.html

回到顶部