Java基础知识
新建空项目
-
New Project->Empty Project
-
File->New->Module(模块)
-
File->Project Structure->Project
-
设置SDK为1.8
-
设置Language level为8
-
-
src文件夹右键->New->Java class
注释
-
单行注释 // //
-
多行注释 /* */
-
文档注释 /** */
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,world!");
}
}
//单行注释
/*多行注释
多行注释
*/
/**
* @deprecated Hello,World!
* @Author 小明
*/
标识符和关键词
-
常见关键词

-
标识符注意
-
-
标识符应以字母(A-Z,a-z),美元符$,下划线_开头
-
首字母后可以使用字母、数字、下划线
-
不能使用关键字作为变量名或方法名
-
可以使用中文命名,但不建议
-
数据类型
-
Java基本数据类型
-
基本类型(primitive type)
-
引用类型(reference type)
-

public class Demo{
public static void main(String[]){
//八大基本数据类型
//整数
int num1=10;
byte num2=20;
short num3=30;
long num4=30L;//长整型后要加L
//小数:浮点数
float num5=50.1F;//float后要加F
double num6=3.1415926;
//字符
char name='国';
//字符串,注意String不是关键字,属于引用数据类型-类
String name="中国";
//布尔值
boolean flag=true;
bollean flag=false;
}
}
数据类型扩展
-
整数扩展
-
浮点数扩展
-
字符扩展
-
Unicode码
-
转义字符
-
内存
-
布尔值
public class Demo{
public static void main(String[] args){
//整数扩展:进制 二进制0b;十进制;八进制0;十六进制0x
int i=10;//十进制
int i2=010;//八进制
int i3=0x10;//十六进制
System.out.printIn(i);
System.out.printIn(i2);
System.out.printIn(i3);
System.out.printIn("================ ");
//浮点数扩展 浮点数一般具有舍入误差 一般都为大约的数字 不精确
float f=0.1f;
double d=1.0/10;
System.out.printIn(f==d);//false
float d1=231321312311231f;
float d2=d1+1;
System.out.printIn(d1==d2);//true
System.out.printIn("================ ");
//字符扩展 字符<==>数字
char c1='a';
System.out.printIn((int)c1);
//编码Unicode \u开头
char c3='\u0061';
System.out.printIn(c3);
System.out.printIn("================ ");
//转义字符 \t 制表符 \n 换行
System.out.printIn("Hello\nWorld");
System.out.printIn("================ ");
//内存
String sa=new String(original:"hello,world");
String sb=new String(original:"hello,world");
System.out.printIn(sa=sb);//false
String sc="hello,world";
String sd="hello,world";
System.out.printIn(sc=sd);//true
//布尔值
boolean flag=true;
if(flag){}
if(flag==true){}
}
}
数据类型转换
-
类型转换顺序
低------------------------------------->高
byte,short,char->int->long->float->double
从低到高要强制类型转换
从高到低自动类型转换
-
注意点:
-
布尔类型不能转换
-
不能把对象类型转换为不相关类型
-
高容量转到低容量时,需要强制转换
-
转换可能存在内存溢出或者精度问题
-
public class Demo{
public static void main(String[] args){
int i=128;
byte b=(byte)i;//强转 内存有溢出
double b1=i;//自动转换
System.out.printIn(i);
System.out.printIn(b);
System.out.printIn(b1);
System.out.printIn("================ ");
System.out.printIn((int)23.7);//23
System.out.printIn((int)-45.89f);//-45
System.out.printIn("================ ");
char c='a';
int d=c+1;
System.out.printIn(d);
System.out.printIn((char)d); }
}
-
大数运算时可能存在溢出问题
public class Demo{
public static void main(String[] args){
int money=10_0000_0000;
int years=10;
int total=money*years;//溢出,计算的时候溢出
long total1=money*years;//溢出,转换前已经溢出,再转换没意义
long total2=money*((long)years); //未溢出
System.out.printIn(total);
System.out.printIn(total1);
System.out.printIn(total2);
}
}
变量、常量、作用域
-
变量
-
变量名
-
变量类型
-
作用域
-
类变量
-
实例变量
-
局部变量
-
-
public class Demo1 {
//类变量 需要加static
static double salary=2500;
//==========================
/*在类内定义的变量为实例变量,可以不初始化
对于未初始化值会默认初始值(数值初始值为0或0.0,字符为0000,布尔为false,其余都为null)
*/
String name;
int age;
public static void main(String[] args) {
//============================
//方法中定义的变量为局部变量,必须同时声明和初始化
//局部变量
//int i;未初始化报错
int i=10;
System.out.println(i);
//实例变量
Demo1 demo1 = new Demo1();//对于实例变量必须先new对象,再调用。快捷键Alt+Enter
System.out.println(demo1.name);
System.out.println(demo1.age);
//类变量 类变量不需要new对象,可直接使用
System.out.println(salary);
}
}
-
常量
-
初始化后不能再改变的值
-
定义常量前要加修饰符final 常量名=值
-
常量名一般使用大写字符
-
public class Demo{
//修饰符,不区分先后顺序 如public,static,final
static final double PI=3.14;//定义的为类常量
public static void main(String[] args){
System.out.printIn(PI);
}
}
-
命名规范
-
见名知意
-
变量:首字母小写和驼峰原则,如monthSalary
-
常量:大写字母和下划线,如MAX_VALUE
-
类名:首字母大写和驼峰原则,如Man,GoodMan
-
方法名:首字母小写和驼峰原则,如run(),runRun()
-
运算符
-
常见的运算符
-
算术运算符:+,-,*,/,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符:?:
-
扩展赋值运算符:+=,-=,*=,/=
-
-
注意
-
整数四则运算中含有long型,运算后结果为long;不含long型,则运算后结果都为int
-
关系运算结果为布尔型
-
b=a++;先执行b=a,再执行a=a+1
-
b=++a;先执行a=a+1,再执行b=a
-
对于复杂数学运算要借助数学类Math
-
-
逻辑运算符与位运算符
-
&&(与运算):同真为真,特殊短路运算(即当与运算前面值为假时,程序不再执行与运算,结果必为假)
-
-
||(或运算):有一个真即为真
-
!(非运算):真变假,假变真
-
-
&(按位与):按位同真为真
-
|(按位或):按位存在真即为真
-
~(按位非):按位取相反数
-
^(按位异或):按位相同取1,不同区0
-
<<左移一位:相当于数值乘以2
-
< >>右移一位:相当于数值缩小2倍
-
-
字符串连接操作
使用+号可以实现字符串连接操作,只要连接的数据中含有字符类型
public class Demo2 { public static void main(String[] args) { int a=10; int b=20; System.out.println(""+a+b);//1020 System.out.println(a+b+"");//30 当字符在后面时,先运算a+b再运算+"" } } -
三元运算符
public class Demo{ public static void main(String[] args){ //三元运算符 x?y:z //如果x==true,则结果为y,否则为z int score=50; String type=score<60?"及格":"不及格"; System.out.printIn(type); } } -
运算优先级
包机制
-
包用于区别类名的命名空间
-
一般用公司的域名倒置作为包名
-
如com.baidu.www
-
com.zhang.xxx
-
-
包语法格式为:
-
package pkg1[. pkg2[. pkg3...]]
-
-
为了能使用包中成员,使用import调用
-
import package[.package2...].(classname|*);
-
-
IDEA中的包可以通过Project->小齿轮->Tree Appearance->Compact Middle Package来显示和隐藏中间包
package com.kuang.operator;//包格式
import com.kuang.*;//导入kuang中的所有成员
import com.kuang.Demo1;//导入kuang中的Demo1
JavaDoc
-
官方JavaDoc帮助文档可以查看官方API信息, Java SE 文档 - API 和文档 | Oracle 中国
-
自建的API可以使用javadoc命令生成文档
-
常见的参数信息有
-
@author作者
-
@version版本号
-
@since指明需要最早使用的jdk版本
-
@param参数名
-
@return返回值情况
-
@throws异常抛出情况
-
package JavaSE.ChunYang;
/**
* @author XiaoMing
* @version 1.0
* @since 1.8
*/
public class Demo {
String name;
/**
* @author XiaoMing
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
-
生成自建API帮助文档
-
通过命令行生成帮助文档
-
cmd->javadoc -encoding UTF-8 -charset UTF-8 文件名.java
-
点击生成的index.html即可查看生成的帮助文档
-
-
通过IDEA生成帮助文档
-
-
本文来自博客园,作者:{Ray963},转载请注明原文链接:{https://www.cnblogs.com/ray93/}

浙公网安备 33010602011771号