Day05

认识intellij idea

什么是ide

IDE:集成开发环境(Integrated Development Environment)

java基础语

1. 注释、标识符、关键字

注释

注释:不会被执行,给写代码的人看的
包括:
	1.单行注释,用来注释一行文字(/   /)
	2.多行注释,用来注释一段文字(/*   */)
	3.文档注释(/**   */)

标识符

  • java所有的组成部分都需要名字。类名、变量名和方法名统称为标识符
  • 所有的标识符都应以字母(A(a)-Z(z)、美元符($)或下划线()开始,首字符以后可以是字母(A(a)-Z(z)、美元符($)、下划线()或者数字的任意组合。
  • 标识符是大小写敏感的
  • 不能用关键字作为变量名或方法名

java所有关键字

关键字含义

	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文档
posted @ 2021-07-29 15:50  白一求一恩  阅读(60)  评论(0)    收藏  举报