如何创建一个项目

1、创建空项目

2、选择新模块

image.png

3、项目结构

image.png

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

1)注释

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("hello world!");
  4. //单行注释
  5. /*
  6. 这是多行注释
  7. 这是多行注释
  8. */
  9. /**
  10. * @Description Hello world
  11. * @Author baoqiang
  12. */
  13. }
  14. }

2)关键字

image.png

3)标识符

  • 所有的组成成分都需要名字,类名、变量名、以及方法名都被成为标识符
  • 注意点

image.png

2、数据类型

  • 强类型语言
    • 要求变量的使用要严格符合规定,所有变量必须先定义后使用
  • 弱类型语言
  • java数据类型分为两大类

    1) 基本类型(primitive type)

    image.png ``` // 八大数据类型 //整数 byte num = 10; short num1 = 11; int num2 = 13; long num3 =14L;

// 浮点数 float num10 = 2.3F; double num12 = 234.34234234234;

// 字符 char a1 = ‘A’;//就是1个字 // String 不是关键字,是类 String namea = “我的”;

// 布尔 boolean flag = true;

  1. - 什么是字节
  2. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12881754/1621901543049-aad313bf-87e0-4e5b-ab58-168b0dbd02b6.png#clientId=u4da309e5-9ff2-4&from=paste&height=360&id=u3042c632&margin=%5Bobject%20Object%5D&name=image.png&originHeight=720&originWidth=1637&originalType=binary&ratio=1&size=352876&status=done&style=none&taskId=u8fbd2955-3508-4405-bd5e-7d722cf410d&width=818.5)
  3. <a name="NAdz0"></a>
  4. #### 2) 引用类型 (reference type)
  5. - 面试题

// 整数 二进制0b、八进制0、十进制、十六进制0x int i = 1; int i2 = 010; int i3 = 0x10; System.out.println(i); System.out.println(i2); System.out.println(i3);

//浮点数 有限 离散 舍入误差 大约 接近但不等于BigDecimal

//为什么不相等,最好是完全使用浮点数进行比较(注意) float f = 0.1f; double d = 1.0 / 10; System.out.println(f == d);//false System.out.println(f);// 0.1 System.out.println(d);// 0.1

float f2 = 234234234234f; float d2 = f2 + 1; System.out.println(f2);//2.34234233E11 System.out.println(d2);//2.34234233E11 System.out.println(f2 == d2);//true

//字符串 所有的字符本身还是数字 编码 Unicode 占2字节 最多65536 char c20 = ‘a’; char c2 = ‘中’; System.out.println(c20); System.out.println((int)c20);//强制转换int 97

System.out.println(c2); System.out.println((int)c2);//强制转换int 20013

// 转义字符 \t 空格 \n 换行 System.out.println(“Hello\tWorld,\nmy love!”);

// 对象,从内存分析 String sa = new String(“hello world”); String sb = new String(“hello world”); System.out.println(sa==sb);//false

String sc = “hello world”; String sd = “hello world”; System.out.println(sc==sd);//true

//从布尔值扩展 boolean flag1 = true; if (flag1==true){} if(flag1){}

  1. <a name="JP0JC"></a>
  2. ### 3、类型转换
  3. - 转换容量 从低到高
  4. - byte short char int long float double
  5. <a name="HSRXs"></a>
  6. #### 1)强制类型转换(高 -> 低)
  7. <a name="GoDt5"></a>
  8. #### 2)自动类型转换(低 -> 高)

/*

  1. 不能对布尔值转换
  2. 转换的时候可能会发生内存溢出、或精度问题 */ System.out.println((int)-25.4f); System.out.println((int)23.5f); char c = ‘a’; int b = c +1; System.out.println(b); System.out.println((char)b);

//操作比较大的数 注意溢出问题,数字间可以用 _ 分割,先把一个数转换类型

int r = 10_0000_0000; int years = 20; System.out.println(r * years); //-1474836480

long total3 = r * ((long)years); //20000000000 System.out.println(total3);

  1. <a name="beuUF"></a>
  2. ### 4、变量、常量
  3. <a name="VzRiT"></a>
  4. #### 1)变量
  5. - 变量是最基本的存储单元,要素包括变量名、变量类型、作用域
  6. - 每个变量都有类型,类型可以是基本类型,也可以是引用类型
  7. - 变量名必须是合法的标识符
  8. - 变量声明是一条完整的语句,因此每一个声明都以分号;结尾。
  9. - 变量作用域
  10. - 类变量
  11. - 实例变量
  12. - 局部变量

public class HelloWorld { static int callClick = 8;//类变量 String str1 = “hello world”;// 实例变量 public static void main(String[] args) { int u = 0;//局部变量
} } //使用 public class demo01 { static double salary = 2500;// 类变量

  1. String str1 = "hello world";
  2. public static void main(String[] args) {
  3. System.out.println(salary);//类变量使用
  4. //实例变量使用
  5. demo01 demo01 = new demo01();
  6. System.out.println(demo01.str1);
  7. int i = 10;//局部变量使用
  8. System.out.println(i);
  9. }

}

  1. <a name="U0Vcx"></a>
  2. #### 2)常量
  3. - 特殊的变量,不能改变
  1. // 修饰符不存在先后
  2. static final int IP = 123123;
  1. <a name="na7kQ"></a>
  2. #### 3)变量的命名规范
  3. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12881754/1621987477327-d868e664-69fe-47cf-993a-405e187eff5b.png#clientId=ud6312abe-58cb-4&from=paste&height=112&id=ubd693cc2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=223&originWidth=770&originalType=binary&ratio=1&size=89149&status=done&style=none&taskId=ub08bd66f-48de-40e7-9489-aeaa7bbd46c&width=385)
  4. <a name="PJA7a"></a>
  5. ### 5、运算符
  6. - Java语言支持如下运算符
  7. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12881754/1622072151050-e6a7cfff-29ea-469b-bfc1-f2eab13ddae0.png#clientId=uc80394e5-7114-4&from=paste&height=315&id=u0cceeeea&margin=%5Bobject%20Object%5D&name=image.png&originHeight=629&originWidth=1099&originalType=binary&ratio=1&size=263054&status=done&style=none&taskId=ud8d356f5-ecc5-4a8f-9ec6-b7b9bd7f107&width=549.5)
  8. - **代码示例**

package operator;

public class Demo02 { public static void main(String[] args) { long a = 1231231231231231L; byte b = 10; int c = 123; short d = 11;

  1. System.out.println(a + b); // 有long 类型的,最终结果是long类型,其余都是int类型
  2. System.out.println(b + c + d);
  3. System.out.println((double) (c + d));
  4. }

}

#

package operator;

public class Demo01 { public static void main(String[] args) { int a = 10; int b = 20; int c = 11; int d = 1;

  1. System.out.println(a+b);
  2. System.out.println(a-b);
  3. System.out.println(a*b);
  4. System.out.println((double)d/c); // 只要将一方的类型转换即可显示正常
  5. }

}

  1. <a name="rUCve"></a>
  2. #### 1)自增自减运算符

package operator;

// ++ — 一元运算符, public class Demo03 { public static void main(String[] args) { int a = 3; int b = a++;//先赋值,后自增 int c = ++a;//先自增,后赋值

  1. System.out.println(a); //5
  2. System.out.println(b); //3
  3. System.out.println(c); //5
  4. // 幂运算
  5. double d = Math.pow(2,3);
  6. System.out.println(d); //8.0
  7. }

}

  1. <a name="krKEd"></a>
  2. #### 2)逻辑运算符

package operator;

public class Demo04 { public static void main(String[] args) { / 与 && 或 || 非! / boolean a = true; boolean b = false; System.out.println(a); System.out.println(b); System.out.println(“a && b: “ + (b&&a)); System.out.println(“a || b: “ + (b||a)); System.out.println(“!(a && b): “ + !(b&&a));

  1. // 短路运算
  2. int c = 5;
  3. boolean d = (c < 4)&&(c ++ <4);
  4. System.out.println(d);
  5. System.out.println(c);
  6. }

}

#

true false a && b: false a || b: true !(a && b): true false 5

  1. <a name="CqJNL"></a>
  2. #### 3)三元运算符

// 三元运算符 x ? y : z double score = 99.4; String a = score > 100 ? “及格” : “不及格”; System.out.println(a);//不及格

  1. <a name="FpAio"></a>
  2. #### 4)位运算符

// 2 8 如何效率最高 二进制 8位为一个存储单位,8位(一字节)表示的范围是0-255共256个数字 / 0000 0000 0 0000 0001 1 0000 0010 2 start 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 end */ System.out.println(2 << 3);

  1. <a name="Hqq5B"></a>
  2. ### 6、包机制、javaDoc
  3. <a name="FQrxr"></a>
  4. #### 1)包机制
  5. - 本质: 文件夹
  6. - 注意
  7. - 包名不要和类型重复
  8. - 必须放在文件最上方
  9. - import com.kuang.base.* //导入这包的所有类
  10. - 阿里巴巴开发手册
  11. - 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
  12. - 包语句的语法格式
  13. package pkg1[. pkg2[. pkg3]]
  14. - 一般公司域名倒置作为包名
  15. - 为了能够使用一个包的成员,我们需要在java程序中明确导入该包,使用import语句可完成此功能
  16. - import package [. package2...].(classname | *);
  17. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12881754/1622160082291-d02641c7-4c7a-4e73-8a91-5b832c2f0052.png#clientId=ucd4cd17b-4eb1-4&from=paste&height=220&id=u05f79fee&margin=%5Bobject%20Object%5D&name=image.png&originHeight=439&originWidth=1124&originalType=binary&ratio=1&size=78526&status=done&style=none&taskId=u886fd062-2c81-4d53-bf44-53f65fe6437&width=562)
  18. <a name="bRRuI"></a>
  19. #### 2)javaDoc
  20. ![image.png](https://cdn.nlark.com/yuque/0/2021/png/12881754/1622160721602-42385525-d054-401f-9c9f-6ff74d402c7d.png#clientId=ucd4cd17b-4eb1-4&from=paste&height=86&id=u816047f7&margin=%5Bobject%20Object%5D&name=image.png&originHeight=172&originWidth=289&originalType=binary&ratio=1&size=40917&status=done&style=none&taskId=u8d6f449e-eb92-42c8-a37c-93da244bfcd&width=144.5)
  21. - 类和方法都可以注释
  22. <a name="ThHJf"></a>
  23. ##### 1)代码示例

javadoc -encoding UTF-8 -charset UTF-8 Doc.java // Doc.java package com.kuang.base;

/**

  • @author Kyrie
  • @version 1.0
  • @since 1.8 */ public class Doc { String name;

    /**

    • @author Kuangshen
    • @param name
    • @return
    • @throws Exception */ public String test (String name) throws Exception{ return name; } } ```
      2)生成javadoc,index.html
      image.png

3)生成目录文档

image.png