本文写作思路源于狂神说
写在前面1.在IDEA里创建Java项目及IDEA的背景与字体更改(1)创建Java项目(空项目)
1、进入IDEA页面–>File–>new–>project–>选择Empty Project
2、填写项目名与项目存放的路径
注意:路径后方也需要写上\项目名
3、建好空项目后如图
4、File–>new–>moudle(模块)
5、然后出现以下页面,next
6、出现以下页面,可以更改名字,点击finish
7、由于建立的是一个空的项目,所以还需要配置项目结构
方式一:File–>Project Structure–>选择project–>project SDK选择我们配置好的就可以使用了
方式二:点击IDEA页面的右下角有三个蓝色正方形的图标,其余操作与方式一一样
(2)更改字体
File–>settings…–>Font(如下图)
(3)更改背景
方式一:File–>settings…–>Appearance–>Background Image…–>选择图片–>OK
方式二:双击shift键–>输入Set Background Image–>选择图片–>OK
(4)运行输出Hello World!
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}
一、注释
调整注释的颜色及大小
File–>Settings–>Editor–>Java(如下图)–>Apply–>OK
注意:注释不会被执行
1.单行注释
表示形式为// 注释内容,样式如下图
注意:只能注释一行文字
public class Demo1 { public static void main(String[] args) { String man = "司空颜"; //单行注释 //String MAN = "司空颜"; //String Ahello = "司空颜"; //String hello = "司空颜"; //String $hello = "司空颜"; //String _hello = "司空颜"; //String A1 = "司空颜"; System.out.println(man); }}
2.多行注释
表示形式为/* 注释内容 */,样式如下图
可以注释一段文字
public class Demo1 { public static void main(String[] args) { String man = "司空颜"; /* 多行注释 */ System.out.println(man); }}
3.文档注释(Java Doc)
表示形式为/** 注释内容 */,样式如下图
注意:文档注释是有其他功能的,可以加一些参数,在*号后面写上@…
public class Demo1 { public static void main(String[] args) { String man = "司空颜"; /** * *文档注释 * @Description HelloWorld * @autor sikongyan */ System.out.println(man); }}
想要了解注释更多的码友,可以去搜索”有趣的代码注释”
二、标识符和关键字1.关键字
2.标识符注意点
- 所有的标识符都应该以字母(AZ或者az),美元符($)、下划线(_)开始
- 首字母之后可以是字母、美元符、下划线或者数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age、$salary、_value…
- 非法标识符举例:123abc、-salary、class、#abc…
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
三、数据类型1.八大基本类型(primitive type)1.1数值-整数类型
byte占一个字节范围:-128~127
short占2个字节范围:-32768~32767
int占4个字节范围:-2147483648 ~2147483647
long占8个字节范围: -9223372036854775808 ~ 9223372036854775807
1.2数值-浮点类型
float占4个字节
double占8个字节
1.3 boolean类型:占1位其值只有true和false两个
举例:
public class Demo2 { public static void main(String[] args) { String a="Hello,World!"; int num=10; System.out.println(a); System.out.println(num); //八大基本数据类型 //整数 int num1=10;//最常用 byte num2=20; short num3=30; long num4=30L;//Long类型要在数字后面加个L //小数:浮点数 float num5 = 50.1F;//float类型要在数字后面加个F double num6=3.1025536255523; //字符 char name='颜'; //字符串 String不是关键字,类 //String namea="司空颜"; //布尔值 boolean flag = true; //boolean flag = false; }}
2.引用类型(reference type)1.1类1.2接口1.3数组四、类型转换
情况较为复杂,就不多用文字赘述了,直接上代码,详情请观看此视频
例1:
public class Demo { public static void main(String[] args) { //整数拓展 进制 二进制0b 十进制0 十六进制0x int i=10;//十进制的10 int i2=010;//八进制的10 int i3=0x10;//十六进制的10 System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("==============================="); //======================= //浮点数拓展? 银行业务怎么表示?钱 //BigDecimal 数学工具类 //======================= //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 float f = 0.1f; double d = 0.1; System.out.println(f==d);//false //System.out.println(f); //System.out.println(d); float d1=2131313131313f; float d2=d1+1; System.out.println(d1==d2);//true //System.out.println(d1); //System.out.println(d2); System.out.println("=============================="); //======================= //字符拓展? //======================= char c1='a'; char c2='中'; char c3='A'; System.out.println(c1); System.out.println((int)c1);//强制转换 System.out.println(c2); System.out.println((int)c2);//强制转换 System.out.println((int)c3); //强制转换可以把字符强制转换为数字 //所有的字符本质还是数字 //编码 Unicode 2个字节 最多65536字符 Excel表格最长是2的16次方 2的16次方=65536 //a=97 A=65 中=20013 //u0000 UFFFF char c4='\u0061'; System.out.println(c3);//A //转译字符 // \t 制表符 // \n 换行 // ...... System.out.println("Hello\tWorld!"); System.out.println("==========================="); // String sa = new String("Hello World!"); String sb = new String("Hello World!"); System.out.println(sa==sb); String sc = "Hello World!"; String sd = "Hello World!"; System.out.println(sc==sd); //对象 从内存分析 //布尔值扩展 boolean flag=true; if(flag==true){} //新手 if(flag){} //老手 //less is more! 代码要精简易读 }}
例2:
public class Demo01 { public static void main(String[] args) { int i=128; byte b=(byte)i;//内存溢出 double c = i; //强制转换 (类型)变量名 高-->低 //自动转换 低-->高 System.out.println(i); System.out.println(b); System.out.println(c); /*注意点: 1.不能对布尔值进行转换,原因是布尔是按位的 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,需要强制转换,反之则不用动 4.转换的时候可能存在内存溢出,或者精度问题! */ System.out.println("==============="); System.out.println((int)23.7);//23 System.out.println((int)45.89f);//45 System.out.println("==============="); char d = 'a'; int e = d+1; System.out.println(e); System.out.println((char)e); }}
例3:
public class Demo02 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK新特性,数字之间可以用下划线分割,且输出不会输出下划线 int money=10_0000_0000; int years=20; //System.out.println(money); int total=money*years;//-1474836480,计算的时候溢出了 System.out.println(total); long total2=money*years;//-1474836480,计算时默认是int,计算完以后再转换类型 System.out.println(total2); long total3 = money*(long)years;//先把一个数据转换成Long,再进行计算 System.out.println(total3); long total4 = (long)money*years; System.out.println(total4); }}
例4:
public class Demo03 { public static void main(String[] args) { //int a,b,c; //int a=1,b=2,c=3;最好写成三行 //int a=1;程序得保证程序的可读性 String name="sikongyan"; char x='X'; double pi=3.14; }}
五、变量、常量、作用域
例1:
public class Demo04 { //类变量 static static double salaly=2500; //属性:变量 //实例变量:从属于对象; String name; int age; //所有的数值类型初始化值是0或者0.0 字符类型的话初始值是u0000(16位的0) //除了基本类型,其余的初始化值(默认值)是null //布尔值默认是false //main方法 public static void main(String[] args) { //局部变量,必须声明和初始化值 int i =10; System.out.println(i); //变量类型 变量名字=new com.sikongyan.www.Operator.basic.Demo04(); Demo04 Demo04 = new Demo04(); System.out.println(Demo04.age); System.out.println(Demo04.name); //类变量 static System.out.println(salaly); } //其他方法 public void add(){ }}
例2:
public class Demo05 { //定义为static static final double PI=3.14; //final为修饰符,不存在先后顺序 final static double pi=3.1652; public static void main(String[] args) { System.out.println(PI); System.out.println(pi); }}
六、运算符
Java支持如下运算符:
- 算术运算符:+、-、*、/、++、–
- 赋值运算符:=
- 关系运算符:>、=、<=、==、!=、instanceof
- 逻辑运算符:&&、||、!
- 位运算符:&、|、^、~、>>、<>>
- 条件运算符:?
- 扩展赋值运算符:+=、-=、*=、/=
1.基本运算符
例1:
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(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b); System.out.println(a/b);//0,因为类型为int,会四舍五入,所以需要数据类型强制转换一下才正确 }}
例2:
public class Demo02 { public static void main(String[] args) { //多类型 long a=123123123222L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//Long类型 System.out.println(b+c+d);//Int类型 System.out.println(c+d);//Int类型 //System.out.println((String)(c+d));//Int System.out.println((double)c+d);//double //多类型时如果数值类型有Long,计算以后为Long类型 //如果有double,计算以后结果为double //其余计算以后,默认为Int类型 }}
例3:
public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果:正确 错误 用布尔值表示 //会和if一起搭配使用 int a=10; int b=20; int c=21; //取余数,也叫模运算 System.out.println(c%b);//c÷b=2 ... 1,print 1 System.out.println(c%a); System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); }}
2.自增自减运算符和初识Math类
例:
public class Demo04 { public static void main(String[] args) { //++ -- 自增,自减 int a=3; int b=a++;//执行完这行代码后,先给b赋值,再自增 //隐藏代码 a++ a=a+1 System.out.println(a); //隐藏代码 a++ a=a+1 int c=++a; //执行完这行代码前,先自增,再给b赋值 System.out.println(a); System.out.println(b); System.out.println(c); int d=a--; int e=--a; System.out.println(d); System.out.println(e); //幂运算 2^3=2*2*2=8 很多运算,我们会使用一些工具类来操作 double pow=Math.pow(3,2); System.out.println(pow); }}
3.逻辑运算符、位运算符
例:逻辑运算符
package com.sikongyan.www.Operator;//逻辑运算符public class Demo05 { public static void main(String[] args) { //与 (and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(a&&b));//与运算:两个都为真,结果为真 System.out.println("a || b:"+(a||b));//或运算:一个为真,结果为真 System.out.println("!(a && b):"+!(a&&b));//与非运算 System.out.println("!(a || b):"+!(a||b));//与或运算 //短路运算 System.out.println("a && b:"+(b&&a));//短路例子,已知b为假,则a就不执行了 //例 int c=5; boolean d = (c<4)&&(c++<10); System.out.println(d); System.out.println(c); }}
例:位运算符
public class Demo06 { public static void main(String[] args) { /* A = 0011 1100 B = 0000 1111 ----------------------------- A&B(与) = 0000 1100 A|B(或)= 0011 1111 A^B(亦或) = 0011 0011 相同为0,不同为1 ~B (取反)= 1111 0000 面试题:2*8怎样计算最快 2*8 = 16 2*2*2*2 位运算效率极高!!! <> 右移 相当于/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 ..... 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); }}
例3:
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 System.out.println(a); //字符串连接符 + , String System.out.println(a+b); System.out.println(""+a+b);//如果字符串在前面,后面的会进行拼接 System.out.println(a+b+"");//如果字符串在后面,会先进行运算,再拼接 }}
4.三元运算符
例:
package com.sikongyan.www.Operator;//三元运算符public class Demo08 { public static void main(String[] args) { //? : //x ? y : z //如果x==true,则结果为y,否则结果为z int score = 80; //String type = score<60?"不及格":"及格";//必须掌握 //System.out.println(type); if(score<60){ System.out.println("不及格"); }else{ System.out.println("及格"); } }}
十、包机制1.创建包及包命名
1.1 创建包:Src–>new–>Package
1.2 包命名:一般使用公司域名倒置作为包名
例:com.baidu.www
注意点如下
package com.sikongyan.www.Operator;//*为通配符,可以导入包下所有的代码public class Demo09 { public static void main(String[] args) { System.out.println("sikongyan");//阿里巴巴开发手册 //https://docs.oracle.com/javase/8/docs/api/ //jdk帮助文档 }}
十一、javaDoc生成文档
JavaDoc参数信息
- @author:作者名
- @version:版本号
- @since:指明需要最早使用的jdk版本
- param:参数名
- return:返回值情况
- throws:异常抛出情况
1.命令行生成javadoc
- 编辑doc.java文件,使用文档注释,如下图
package com.sikongyan.www.Basic; /** * @author sikongyan * @version 1.0 * @since 1.8 */ public class Doc { String name; /** * @author sikongyan * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } //命令行生成doc api文件 //javadoc -encoding UTF-8 -charset UTF-8 Doc.java }
- doc命令生成doc api文件
javadoc -encoding UTF-8 -charset UTF-8 doc.java
- 进入doc.java文件目录下查看如图
- 打开index.html文件如图,则说明已生成文档
2. IDEA生成javadoc
参考此篇博客