本文写作思路源于狂神说

写在前面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

  1. 编辑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    }
  1. doc命令生成doc api文件

javadoc -encoding UTF-8 -charset UTF-8 doc.java

  1. 进入doc.java文件目录下查看如图
  2. 打开index.html文件如图,则说明已生成文档

2. IDEA生成javadoc

参考此篇博客