Day05
认识intellij idea
什么是ide
IDE:集成开发环境(Integrated Development Environment)
java基础语
1. 注释、标识符、关键字
注释
注释:不会被执行,给写代码的人看的
包括:
1.单行注释,用来注释一行文字(/ /)
2.多行注释,用来注释一段文字(/* */)
3.文档注释(/** */)
标识符
- java所有的组成部分都需要名字。类名、变量名和方法名统称为标识符
- 所有的标识符都应以字母(A(a)-Z(z)、美元符($)或下划线()开始,首字符以后可以是字母(A(a)-Z(z)、美元符($)、下划线()或者数字的任意组合。
- 标识符是大小写敏感的
- 不能用关键字作为变量名或方法名

关键字含义
abstract:表明类或者成员方法具有抽象属性
assert:断言,用来进行程序调试
boolean:基本数据类型之一,布尔类型
break:提前跳出一个块
byte:基本数据类型之一,字节类型
case:用在switch语句之中,表示其中的一个分支
catch:用在异常处理中,用来捕捉异常
char:基本数据类型之一,字符类型
class:声明一个类
const:保留关键字,没有具体含义
continue:回到一个块的开始处
default:默认,例如,用在switch语句中,表明一个默认的分支
do:用在do-while循环结构中
double:基本数据类型之一,双精度浮点数类型
else:用在条件语句中,表明当条件不成立时的分支
enum:枚举
extends:表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final:用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,
或者成员域的值不能被改变,用来定义常量
finally:用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float:基本数据类型之一,单精度浮点数类型
for:一种循环结构的引导词
goto:保留关键字,没有具体含义
if:条件语句的引导词
implements:表明一个类实现了给定的接口
import:表明要访问指定的类或包
instanceof:用来测试一个对象是否是指定类型的实例对象
int:基本数据类型之一,整数类型
interface:接口
long:基本数据类型之一,长整数类型
native:用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new:用来创建新实例对象
package:包
private:一种访问控制方式:私用模式
protected:一种访问控制方式:保护模式
public:一种访问控制方式:共用模式
return:从成员方法中返回数据
short:基本数据类型之一,短整数类型
static:表明具有静态属性
strictfp:用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
super:表明当前对象的父类型的引用或者父类型的构造方法
switch:分支语句结构的引导词
synchronized:表明一段代码需要同步执行
this:指向当前实例对象的引用
throw:抛出一个异常
throws:声明在当前定义的成员方法中所有需要抛出的异常
transient:声明不用序列化的成员域
try:尝试一个可能抛出异常的程序块
void:声明当前成员方法没有返回值
volatile:表明两个或者多个变量必须同步地发生变化
while:用在循环结构中
2. 数据类型
强类型语言
要求变量的使用要严格符合规定,所有变量都必须定义后使用
好处:安全性高、严谨、避免错误 坏处:速度慢
java分两大类型语言
1. 基本类型 2. 引用类型
1.基本类型:
1.1 数值类型
整数(byte 占1字节)、(short 占2字节)、(int 占4字节)、(long 占8字节)
浮点(float 占4字节)、(double 占8字节)
字符(char 占2字节)
1.2 boolean类型
占一位(1字节是8位) 其值只有true和false两个
1bit是1位
1Byte是1字节 1字节(Byte)=8位(bit)
1024B=1KB
八大基本数据类型
整数
byte num1=10;
int num2=20;//最常用
short num3=30;
long num4=30L;//long类型后面的数字最后加上L
整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x
int i1=10;
int i2=010;
int i3=0x10;
System.out.println(i1);
System.out.println(i2);//八进制0
System.out.println(i3);//十六进制0b 0~9 A~F
小数:浮点数
float num5=50.1F;//float类型后面的数字最后加上F
double num6=3.1415926535897932;
浮点数拓展 银行业务(BigDecimal 数字工具类)
//float double 字长有限、离散 存在舍入误差 接近但不等于
//最好完全避免使用浮点数进行比较
float f=0.1F; //0.1
double d=1.0/10; //0.1
System.out.println(f==d); //false
float f1=232131321312312f;
float f2=f1+1;
System.out.println(f1==f2); //true
字符
char name='安';
//字符串,String不是关键字,是类
String namea="安康";
字符拓展
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int) c2); //强制转换
//所有的字符本质还是数字
//编码 Unicode表 占2字节 2的16次方表示65536个字符 Excel表格
//97=a 65=A 从U0000到UFFFF
char c3='\u0061';
System.out.println(c3);
//转义字符 \t(水平制表符) \n(换行符)。。。
布尔值:是和非
boolean flag=true;
boolean flag=false;
布尔值扩展
boolean flag = true;
if (flag = true) {} //新手
if (flag) {} //老手
Less is More! 代码要精简易读
2. 引用类型
2.1 类
2.2 接口
2.3 数组
3. 类型转换
-
由于java是强类型语言,所以在进行某些运算的时候,要用到类型转换。
低---------------------------------------------》高 byte,short,char→int→long→float→double (小数的优先级大于整数) 整数(byte 占1字节)、(short 占2字节)、(int 占4字节)、(long 占8字节) 浮点(float 占4字节)、(double 占8字节) 字符(char 占2字节) -
运算中,不同类型的数据先转化为同一类型,再运算
-
强制类型转换(高到低)
-
自动类型转换(低到高)
int i=128;
byte b=(byte) i; //内存溢出
//强制转换 (类型)变量名 高--低
System.out.println(i);
System.out.println(b);int k=128; double a=k; //自动转换 低--高 System.out.println(k); System.out.println(a); /* 注意点 1.不能对布尔执行转换 2.不能把对象类型转换为不相干的类型 3.把高容量转换为低容量的时候,强制转换 4.转换的时候,可能存在内存溢出或者精度问题 */ System.out.println((int)23.7); //23 System.out.println((int)-45.89F); //-45 char c='a'; int d =c+1; System.out.println(d); System.out.println((char) d);
//操作比较大的时候,注意溢出问题
int money=10_0000_0000;
int years=20;
int total1=money*years; //计算的时候溢出了
long total2=money*years; //默认是int,转换之前已存在问题
long total3=years*(long)money; //先把一个数转换为long
System.out.println(total1); //-1474836480(溢出)
System.out.println(total2); //-1474836480(溢出)
System.out.println(total3); //20000000000
4. 变量、常量
-
变量:可以变化的量
type varname [=value] [{, varname [=value]}]; 数据类型 变量名=值; (可以用逗号隔开声明多个同类型变量)
5. 运算符
java语言支持如下运算符
-
算术运算符:+、—、*、/、%、++(自增)、——(自减 )
int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b);
long a = 3231232131232131321L;
int b = 123;
short c = 10;
byte d = 8;
//有long一定是long,有double一定是double
System.out.println(a+b+c+d); //long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
System.out.println((double) c+d); //double
//关系运算符返回结果: 正确T错误F
//和if配合使用
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b); //取余数,模运算
System.out.println(c%a); //c/a 21/10=2...1
//++,-- 自增,自减 一元运算符
int a = 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增
//a++ a=a+1
System.out.println(a);
//a++ a=a+1
int c = ++a;//执行完这行代码前,先自增,再给c赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 很多运算使用工具计算
double pow = Math.pow(3, 2);
System.out.println(pow);
-
赋值运算符:=
-
关系运算符:>、<、>=、<=、==、!=、instanceof
-
逻辑运算符:&&、||、!
//逻辑运算符 与(and)、或(or)、非(取反) public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为真(ture) System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,结果才为真(ture) System.out.println("!(a && b):"+!(a&&b));//如果是真则为假,如果是假则变为真 //短路运算 int c =5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c);
-
位运算符:&、|、^(异或)、~、>>(右移)、<<(左移)、>>>(了解!!!)
/* A = 0011 1100 B = 0000 1101 A&B 0000 1100 A|B 0011 1101 A^B 0011 0001(异或:相同为0,不同为1) ~B 1111 0010 2*8=16 2*2*2*2 效率高! <<(*2) >>(/2) 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 0101 5 0000 1000 8 0001 0000 16 */ public static void main(String[] args) { System.out.println(2<<3); }
-
条件运算符?:
//三元运算符 //x ? y : z //如果x==ture,那么结果为y,否则为z int score = 80; String type = score < 60 ? "不及格" : "及格"; System.out.println(type);
- 扩展赋值运算符:+=、—=、*=、/=
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);
System.out.println(""+a+b);
System.out.println(a+b+"");
6. 包机制、javadoc
-
用来生成自己的API文档
-
参数信息
@author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 param 参数名 return 返回值情况 throws 异常抛出情况
package com.ak.Base;
/**
* @author ak
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;//属性
/**
* @author ak
* @param name
* @return
* @throws Exception
*/
public String test (String name) throws Exception{
return name;
}
//学会使用idea生成javadoc文档

浙公网安备 33010602011771号