JAVA基础
1. DOS命令
#盘符切换
d: 切换到d盘
#查看当前目录下的所有文件
dir
#切换目录 change directory
cd目录名
#返回上一级
cd..
#清理屏幕 clear screen
cls
#退出终端
exit
#查看电脑的ip
ipconfig
#打开应用
calc 计算器
mspaint 画图
notepad 记事本
#ping命令
ping www.baidu Icom
#文件操作
md目录名 创建一个命名目录(文件夹)
rd目录名 删除一个命名目录(文件夹)
cd>文件名 创建一个命名文件夹
de1文件名 删除一个命名文件
2. JAVA基础
hello, world
public class Hello{
public static void main(String[] args){
System.out.print("hello, world");
}
}
public class:类
public static void:修饰词,关键字
main:方法,程序必须通过main方法才能执行
String[] args:参数
String:字符串
System.out.print:输出
**注1:**IDEA中
psvm→public static void main
sout→System.out.print
**注2:**public class后面的类名需和txt文件名一致,且首字母大写
注释
// 单行注释
/*
多行注释
*/
/** 文档注释
* @Description
* @Author
*/
标识符
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者**下划线(_)**开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的
- 可以使用中文命名,但是一般不建议这样去使用
数据类型
Java为**强类型语言:**要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
Java的数据类型分为两大类
-
引用类型(refenrence type)
基本类型以外的数据类型都为引用类型:类、接口、数组。
String name="xiangwan";
-
基本类型(primitive type)
数值类型 整数类型 byte占1个字节(8位)范围:-128-127 short占2个字节范围:-32768-32767 int占4个字节范围:-2147483648-2147483647 long占8个字节范围:-9223372036854775808-9223372036854775807 浮点类型 float占4个字节 double占8个字节 字符类型 char占2个字节(一个汉字) boolean类型 占1位,其值只有true和false两个 注1:
long num1=200L //Long类型数字后要加L float num2=50.1F //Float类型要在数字后加F String namea="xiangwan" //String不是关键字,是类
**注2:**进制
//整数扩展: 进制 二进制0b 十进制 八进制0 十六进制0x int i=2; int i2=0b10; int i8=02; int i16=0x2;
**注3:**浮点数 精度有限 离散 不能直接相比较 有舍入误差,对于银行业务常用BigDecimal数学工具类。
**注4:**所有字符本质还是数字
public class Demo1 { public static void main(String[] args) { //强制转换按照Unicode表(97=a, 65=A): 0-65536 char c1='a'; char c2='晚'; System.out.println((int)c1);//强制转换 输出为97 System.out.println((int)c2);//强制转换 输出为26202 //Unicode 转义:U0000-UFFFF 采用16进制 char c3='\u0061'; System.out.println(c3); //Unicode 转义输出字符 } }
**注5:**转义字符
// \t 制表符,不使用表格的情况下在垂直方向按列对齐文本 // \n 换行
**注6:**布尔值扩展
if(flag==true) //与 if(flag) //是一样的类型转换
类型转换
由于JaVa是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。运算中,不同类型的数据先转化为同一类型,然后进行运算。\
低—————————————————————————>高
byte,short,char——>int——>long——>float——>double
◆强制类型转换 高——低
◆自动类型转换 低——高
注:
1,不能对布尔值进行转换;
2.不能把对象类型转换为不相干的类型;
3,在把高容量转换到低容量的时候,强制转换;
4.转换的时候可能存在内存溢出,或者精度问题!
例:
public class Demo1 {
public static void main(String[] args) {
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下线分割
int money = 10_0000_0000;
int years = 20;
int tota1=money*years; //-1474836480,计算的时候溢出了
long total2 =money*years;
long total3 =money*((long)years);
System.out.println(total2); //-1474836480输出错误,默认是int,转换之前已经存在溢出问题了
System.out.println(total3); //输出正确,先把一个数转换为机ong
}
}
变量、常量、作用域
变量
Java为强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束.
作用域
变量有三种作用域:类变量、实例变量和局部变量。
- 局部变量:从属于方法,在所在方法里使用,必须赋值初始化。
public class Demo2 {
//main方法
public static void main(String[] args) {
int i=10; //局部变量
}
}
- 实例变量:在方法外,从属于对象,不必须赋值。数值类型默认值为0、0.0;布尔值默认为false;除基本类型,其余的默认值为null
public class Demo2 {
//实例变量
String name;
int age;
char fname;
//main方法
public static void main(String[] args) {
//使用例
//变量类型 变量名字 = new Demo2()
Demo2 demo2=new Demo2();
System.out.println(demo2.name); //输出null
System.out.println(demo2.age); //输出0
System.out.println(demo2.fna); //输出u0000,即空格
}
}
//实例变量赋值
public class Demo0_1 {
public static void main(String[] args) {
Person person = new Person();
person.setgender("female");
person.setAge(20);
person.setName("xiangwan");
System.out.println("name" + person.getName() + ",age:" + person.getAge() + ",gender:" + person.getgender());
}
}
class Person {
private String gender;
private String name;
private int age;
public void setgender(String gender) {
this.gender = gender;
}
public String getgender() {
return gender;
}
public void setName(String name) {
this.name = name;
}
- 类变量:从属于类,static
public class Demo3 {
//类变量 static
static double salary=5000;
public static void main(String[] args) {
System.out.println(salary);
}
}
常量 final
public class Demo3 {
//常量 final
//修饰符,不存在先后顺序
static final double PI = 3.14;
//final static double pi = 3.14;与上行相同
public static void main(String[] args) {
System.out.println(PI);
}
}
命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary除了第一个单词以外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(0,runRun0
运算符
Java语言支持如下运算符:
-
算术运算符:+,-,*,/,%(模运算,即取余),++(自增),–(自减)
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,=,!=,instanceof
-
逻辑运算符:&&(与),‖(或),!(非)
-
位运算符:&,|,^(位异或,不同为0),~(位非),>>(右移,除2),<<(左移,乘2),>>> (仅了解!!!)
-
条件运算符:?,:
-
扩展赋值运算符:+=,-=,*=,/=
基本运算符
-
long类型数据参与算数运算时结果为long类型,double同理,除此之外均为为int类型。
-
b = a++;//先给b赋值,再自增;
b = ++a;//先自增,再赋值 。
a+ = b; //即a = a+b
-
Math数学类,方法中输入Math.会自动展开类。例:Math.pow(a,b) = a^b
字符串连接符 +
左起第一个字符串前面的+为运算符,后面的+作为连接符。
public class Demo1 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a+b+" "+a+b+" "+a+b);
//输出30 1020 1020
}
}
三元运算符
x ? y : z;//如果x==ture,则结果为y,否则为z
package operator;
public class Demo1 {
public static void main(String[] args) {
int score = 61;
String type = score < 60 ? "不及格" : "及格" ;
System.out.println(type); //输出及格
}
}
包机制
为了更好地组织类,Jva提供了包机制,用于区别类名的命名空间。包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import’"语句可完成此功能
import package1[.package2...].(classname *)
实例
package operator;
import base.Demo.* //*通配符,导入所有类
JavaDoc
Javadoc命令是用来生成自己API文档的,参数信息:
- @author作者名
- @version版本号
- @since指明需要最早使用的jdk版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况
实例:
package operator;
/**
* @author Jellfish
* @version 1.0
* @since 1.8
*/
public class Demo2 {
String name;
/**
* @author Jellfish
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
**注:**使用IDEA生成Javadoc时Java版本过低会报错:“javadoc: 错误 - 无效的标记: --source-path”,可用cmd命令行生成。
Microsoft Windows [版本 10.0.25252.1010]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Administrator\IdeaProjects\JavaSE\Base grammer\src\operator>javadoc -encoding UTF-8 -charset UTF-8 Demo2.java