Java基本语法

本文写作思路源于狂神说

写在前面

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.标识符注意点

  • 所有的标识符都应该以字母(A Z或者a z),美元符($)、下划线(_)开始
  • 首字母之后可以是字母、美元符、下划线或者数字的任何字符组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是 大小写敏感
  • 合法标识符举例: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
>> 右移 相当于/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

参考此篇博客

标签: Java

添加新评论