开始使用IDEA
创建java工程,两种方法
-
直接创建java工程
然后一路next,只需要修改工程名和路径即可
-
先新创建一个空项目,一路next后再选择Moudle创建java模块,如图
然后进行项目结构的配置,将图中两个位置进行设置
然后按照正常步骤即可
-
常使用的快捷键
-
快速复制一行ctrl+d
-
快速删除一行ctrl+y
-
-
java的基础语法
1.注释
//三种注释的格式// //1.单行注释// /* 2.多行注释 多行注释 多行注释 多行注释*/ /** 3.文档注释*/
2.常接触到的关键字
注意:
-
java起名字不能用关键字起名
-
标识符(类名、变量名、方法名统称为标识符)开头应该以字母或者$以及_开始(可以用中文,但不建议)
-
首字符后可以接字母、数字以及上面两个符号
-
表示符对大小写敏感,避免用标识符与关键字重名
3.数据类型
分两类:基本类型和引用类型
-
基本类型
public class Demo01 { public static void main(String[] args) { //八大基本数据类型 //1.整数类型 int num1=50000;//最常用的 byte num2=50;//范围最小 short num3=5000; long num4=58888888888888L;//Long后面要跟l方便区分,范围最大 //2.浮点数(小数) float num5=5.2f;//float后面要加f方便区分 double num6=3.1415926535;//常用 //3.字符 char num7='a'; //注意字符串String不是数据类型,它是一个类 //4.布尔值:只有两个值true和false boolean num8=true; //整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x int i1=0b10; int i2=10; int i3=010; int i4=0x10; System.out.println(i1); System.out.println(i2); System.out.println(i3); System.out.println(i4); System.out.println("====================================================================="); //输出后结果均为十进制 //浮点数拓展:避免使用浮点数进行比较 float i5=0.1f; float i6=1/10; System.out.println(i5==i6);//将i5和i6进行比较,相等就会输出true,明明相等但仍然是false,得使用数学工具BigDecimal进行比较 System.out.println(i5); System.out.println(i6); System.out.println("====================================================================="); //字符拓展(所有的字符类型本质仍然是数字。通过强制类型转换就可以得到) char a1='a'; char a2='A'; char a3='中'; System.out.println((int)a1); System.out.println((int)a2); System.out.println((int)a3); //Unicode编码,通过Unicode表进行转化(a=97,A=65),每个占2字节,范围从u0000-uFFFF char a4='\u0061';//因为Unicode编码是十六进制 System.out.println(a4); /*上面用到了转义字符 ‘\’ 常用的有 \t 制表符(使用后会相当于按了一下tab) \n 换行 */ } }
-
引用类型
类,接口,数组
4.强制类型转换
//基础语法02 public class Demo02 { public static void main(String[] args) { /*类型优先级(从低到高):byte,short,char->int->long->float->double 强制类型转换 格式:(类型)变量名,从高到低转换时使用 自动转换:从低到高会自动转换 注意:不可转换布尔类型 注意转换时会出现精度问题以及内存溢出问题(有些数据类型范围比较小) */ //强制转换 int i=1; byte i1=(byte) i; System.out.println(i1); //自动转换 int a=1; float a1=a; System.out.println(a1); //如何解决内存溢出问题 int money=10_0000_0000;//jdk7新特性,数字之间可以用下划线分割,方便读写 int year=20; int total1=money*year;//输出会导致内存溢出 long total2=money*year;//默认的结果是int,仍然会导致内存溢出 long total3=money*(long)year;//要计算过程中就把一个转换类型,才能防止内存溢出 System.out.println(total1); System.out.println(total2); System.out.println(total3); } }
5.变量与常量
//基础语法03 变量与常量 /* 变量: java变量是程序中最基础的存储单元,其元素包括了 变量名,变量类型 以及很重要的 作用域 一般格式:数据类型 变量=值;(不建议一行定义多个变量) 变量作用域: 类变量:写在类里面的。 格式:static 数据类型 变量=值; 实例变量:(java没有全局变量),一般写在类中间,方法外面。格式:数据类型 变量;(不用赋值) 局部变量:写在方法里面,最常用的变量。格式:数据类型 变量=值;(作用范围就在两个大括号里面) */ /* 常量:一种特殊的变量,定义之后就不会再改变。一般格式:final 数据类型 常量名(一般为大写字母)=值; */ public class Demo03 { String name;/*实例变量,无法直接被输出。如果没有自行初始化,默认一般按照数据类型默认为0 ,0.0,u0000(字符) 布尔值默认值为null 除了八大基本类型,其他默认为null*/ static int year=2021;//类变量,可以直接被输出,从属于当前这个类 static final float PI=3.1415926535F;//常量,可直接被输出 public static void main(String[] args) { Demo03 demo03=new Demo03(); //demo03.name="lisa"; System.out.println(demo03.name);//实例变量无法直接输出 System.out.println(year);//类变量可直接被输出 System.out.println(PI);//常量可直接被输出 } } /*变量的命名规范 1.变量名,方法名以及类名应该做到“见名知意”(使用英文或者英文缩写) 2.类成员变量:首字母小写和驼峰原则(例如lastTime第一个单词小写接着第二个单词首字母大写) 3.局部变量:首字母小写以及驼峰原则 4.常量:全部大写以及下划线(太长可以加下划线)MAX_TIME 5.类名:首字母大写以及驼峰原则 6.方法名:首字母大写以及驼峰原则 */
6.包机制
如果创建的Demo太多看上去不舒服可以先创建一个包,包创建如下图所示:然后可以将所有的Demo拖进去,(相当于起了一个文件夹的作用),按住shift选中第一个文件和最后一个文件就可以全选了
包命名
一般使用公司域名之类 =,比如www.baidu.com,会创建一个三级包www[baidu[com]]
使用包成员
利用import 语句使用包里面的成员,格式一般为 import 包名.包成员名; ,例如:import base.Demo01;
如果要导入所有的成员,可以使用代替,例如import base.;
7.运算符
package base; //基础语法04 基本运算符 /* 最常用的运算符 算数运算符:+,-,*,/,%(取余数,也称为求模),++,-- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑运算符:&&,||,!(与或非) 位运算符:&。|,~,^,>>,<< 条件运算符:? : 拓展赋值运算符:+=,-=。*=,/= */ public class Demo04 { public static void main(String[] args) { //赋值运算符 int a=5; byte b=12; //算数运算符 System.out.println(a+b);//注意:结果类型会变成int,结果会自动往参与运算中最高优先级的类型转换 System.out.println((double)b/a);//注意:除法运算如果想取得准确结果需要用到强制类型转化,否则只是四舍五入后的整数部分 System.out.println(b%a);//取余运算或者叫模运算 System.out.println("======================================================================="); //算数运算符中两个特殊的运算符 ++(自增)--(自减) int c=a++;//等价于c=a;a=a+1 意思是先给c赋值,在进行自增 int d=++a;//等价于a=a+1;d=a 意思是先给a自增,再给d进行赋值,不论是a++还是++a,都为a=a+1 System.out.println(c); System.out.println(d); System.out.println(++b); System.out.println(b++); System.out.println("======================================================================="); //关系运算符 System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b);//会判断后输出布尔值 System.out.println("======================================================================="); //逻辑运算符 与&& 或|| 非! boolean e=true; boolean f=false; System.out.println(e&&f);//都为真才真,一个为假就输出假 System.out.println(e||f);//只要一个为真就输出真 System.out.println(!e);//如果为真就输出假 System.out.println("======================================================================="); //位运算符 /* 举例: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) 右移:>>(每移动一位相当于/2) !!!!!位运算是运算效率最高的 计算机中2*8算的最快的方式是2*2*2*2 2<<2=8 0000 0000 :0 0000 0001 :1 0000 0010 :2 0000 0011 :3 0000 0100 :4 0000 0101 :5 0000 0110 :6 0000 0111 :7 0000 1000 :8 可以看出,从2到8只相当于把2的1朝向左边移动了2位 */ System.out.println(2<<2); System.out.println(8>>2); System.out.println("======================================================================="); //!!!!!!!!!!!!!条件运算符: ? : /* x ? y : z 意思为如果x为true,(x一般是个判断语句)则结果为y,否则为z */ int s=60; String S=s>=60 ? "及格" :"不及格";//必须掌握 System.out.println(S); System.out.println("======================================================================="); //赋值运算符 int X=10; int y=20; X+=y;//X=X+y.其余同理 X-=y; //!!!!!!!字符串连接符+ ,使用时要将字符串类型放在后面,不然会导致后面所有类型均转换为字符串类型 System.out.println(""+X+y);//字符串类型在前面,将后面的两个int类转换了,所以导致输出结果错误 System.out.println(X+y+""); } }
8.javaDoc
-
使用javadoc命令生成自己的API文档
直接在目录前面加cmd进入命令窗
输入 javadoc (-encoding UTF-8 -charset UTF-8(防止中文乱码加的参数)) Doc.java
-
然后就能看到生成了很多文件,点首页文件浏览器就会自动打开看到生成的文档了
-
参数信息
@author 作者名
@version 版本号
@since 指明需要最早使用的JDk版本
@param 参数名
@return 返回值情况
@throw 异常抛出情况
package base; //生成Doc /** * @author fx * @version 1.1 * @since 1.0 */ public class Doc { String name; /** * @author fx * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } }
-
使用IDEA生成javaDoc
-
从上到下
-
选择是整个项目还是模块还是单个文件
-
文档输出路径
-
Locale 选择地区决定了文档的语言,中文就是zh_CN
-
传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8