1.Java基础
1.1dos命令执行Hello World!
1.1.1在idea下进行程序设计
package com.revision;
public class Note01 {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
通过idea编写好hello Word!程序,打开java文件所在目录
向上级目录返回,直到找到out目录
然后进入out目录直到找到当前需要使用的class文件(比如我这里是Note01.class)
然后在当前目录下输入cmd进入dos命令行模式
此时如直接输入命令行执行,则会提示:找不到或无法加载主类Note01.class
java Note01.class
这是因为当前class文件在idea软件的包机制里面,此时需要回到java文件目录输入cmd命令行进入dos命令行模式生成class文件
然后再回到src目录下执行程序
1.1.2通过notepad直接运行
新建一个txt文件通过notepad编辑好需要执行的程序(文件名需要和类名保持一致)
public class HelloWorld{
public static void main(String[] args){
System.out.println("Hello World!");
}
}
将txt文件后缀改为.java
在当前文件进入cmd目录
通过javac 编译.java文件
然后再通过java命令执行程序
1.2 标识符和关键字
1.2.1 标识符定义
Java所有的组成部分都需要名字,类名、变量名和方法名都被称为标识符。
1.2.2 标识符注意的点
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始。
- 首字符之后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或者数字的任何字符组合。
- 不能使用关键字作为变量名或方法名。
- 标识符是大小写敏感的。
- 变量名可以是中文的,但一般不这样定义。
1.2.3 关键字
1.2.4 示例
public class Demo1 {
public static void main(String[] args) {
String student="xiaowang";
String Student="xiaowang";
String $student="xiaowang";
String _student="xiaowang";
String 王者荣耀="倔强青铜";
System.out.println(王者荣耀);
//String #student="xiaowang";
//String *student="xiaowang";
//String 1student="xiaowang";
//String _#="xiaowang";
//String class="xiaowang";
}
}
1.3 数据类型
1.3.1 数据类型定义
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义之后才能使用;
弱类型语言
1.3.2 java数据类型
java数据类型分为两大类:基本类型和引用类型。
1.3.3 样例
public class demo03 {
public static void main(String[] args) {
//整型
int num1 = 10;//占用一个字节
byte num2 = 20;//占用4个字节
long num3 = 30L;//占用8个字节,后面加一个L
short num4 = 40;//占用2个字节
//浮点数
float num5 = 0.1F;//数字后面加F
double num6 = 3.14159265345345435;
//字符
char name = 'A';
char name1 = '啊';
char name4 = 'a';
//字符串 String 不是关键字 是类
String namea = "xiaowang";
//布尔值 是非值
boolean flag = true;
boolean flag1 = false;
//ctrl + 左键 查看方法
}
}
1.3.4 注意点
- String是类不是关键字
- long类型后面要加l
- float类型后面要加f
- 尽量避免使用float,容易有误差,可以使用BigDemical(数学工具类)
1.3.5什么是字节?
1.3.6 进制之间的转换
可以参照进行练习:进制之间的转换
注意:
-
一个数如果要指明它采用八进制,必须在它前面加上一个0;
-
16进制数必须以 0x开头;
1.3.7 转义字符
1.4 类型转换
由于java是强类型语言,所以在进行有些运算的时候,需要用到类型转换
1.4.1数据类型优先级
低---------------------------------------------------->高
byte,short,char->int->long->float->double
1.4.2 数据类型转换注意的点
强制转换:优先级由高到低
自动转换:优先级由低到高
- 不能对布尔值进行转换
- 不能把对象类型转为不相干类型
- 在把高容量转换为低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题
1.4.3 示例
public class demo5 {
public static void main(String[] args) {
int a=128;
byte b=(byte)a;//内存溢出
System.out.println(a);
System.out.println(b);
//(byte)强制转换 优先级高到低
//(byte)自动转换 优先级低到高
System.out.println("***************************");
System.out.println((int)23.7);
System.out.println((int)-43.76f);
System.out.println("***************************");
char a1='a';
int b1=a1+1;
System.out.println(a1);
System.out.println(b1);
System.out.println((char)b1);
}
}
1.5 变量
1.5.1变量的概念
变量是什么?就是可以变化的量!
java是一种强类型语言,每个变量都必须声明其类型。
java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}];
//数据类型 变量名 =值 ;可以通过逗号隔开来声明多个同类型变量
1.5.2注意事项
- 每个变量都有类型,类型可以是基本类型也可以使引用类型;
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
1.5.3 变量作用域
1.5.4 常量
1.5.5 变量的命名规范
1.5.6 示例
public class demo08 {
//类变量 static
static double salary=2500;
String name;
int age;
public static void main(String[] args) {
//属性,变量
//main方法
//局部变量必须声明和初始化值
//实例变量,从属于对象,如果不进行初始化,会变成这个类型默认值,数字的变为0 0.0
//布尔值默认为false,除了基本类型,其他的都是默认null
//变量类型 变量名字 变量值new com.wang.JavaBase.demo08()
demo08 demo08 = new demo08();
System.out.println(demo08.age);
System.out.println(demo08.name);
System.out.println(salary);
}
1.6 运算符
1.6.1 基本运算符
%是取余
++在前先自增再赋值
++在后先赋值再自增
–同理
示例:
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增、自减,一元运算符
int a=3;
//a=a+1
int b=++a;
int c=a++;
//a=a+1
System.out.println("**********************");
int d=a--;//5
int e=--a;//3
System.out.println(d);
System.out.println(e);
System.out.println("**********************");
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3=8 很多运算会使用一些工具类来进行操作
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
1.6.2 逻辑运算
示例:
public class Demo05 {
public static void main(String[] args) {
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));//逻辑非运算符,如果为真,则变为假,如果为假,则变为真
//短路运算,a&&b,如果a为假那么后面的都不用算了,都为假
//短路运算,a||b,如果a为真那么后面的都不用算了,都为真
//验证短路运算,如果后面执行了,c=6,没执行c=5
int c=5;
boolean d=(c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
1.6.3 位运算
示例:
public class demo06 {
public static void main(String[] args) {
/*
A=0011 1100
B=0000 1101
A&B=0000 1100
A|B=0011 1101
取反:相同为0,否则为1 A^B=0011 0001
~B=1111 0010
*/
/*
左移、右移运算 效率极高!!!
<< *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);
}
}
1.6.4 三元运算符
示例:
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 );
}
}