首先配置环境
检测一下jdk安装:
win+R—>cmd
java -version jdk
配置环境变量:
- JAVA_HOME:(E:\jdk)jdk的安装路径。
- Path:%JAVA_HOME%\bin;
-
dos命令
-
dir:查看所有的目录
-
cd :跳转到指定的目录下
cd desktop;—跳转到桌面
-
一、jdk的安装和使用
java中的jdk的选取:jdk1.8
jdk的安装:装的路径。
二、配置环境
JAVA_HOME:jdk的路径
Path:%JAVA_HOME%\bin
三、DOS下去操作.java文件
熟悉常用dos命令
dir、cd 、cd…、clear
java先编译后执行的。
javac 编译的指令 javac HelloWorld.java
java 执行 java HelloWorld
中文问题
??? ????GBK UTF-8
命名规范的问题:
- 包的命名:域名反写规则,驼峰命名法
www.baidu.com baidu.com com.baidu tedu.cn cn.tedu com.jd
如果是多个单词组成,每一个单词都是小写的,多个单词之间使用.分隔。
- 类的命名:驼峰命名法
形如:Test01 Demo01 TestData
如果是多个单词组成,每一个单词的首字母都是大写的,其余单词小写。
package demo;//包 package
//指明了当前类的位置
//关键字:java中赋予的一些单词具有特殊的意义。不需要死记硬背。了解。
//单行注释
/**
* 文本注释:
* 这是写的第一个java程序!!!
*/
public class HelloWorld {
/*
多行注释:
public:修饰符
class:类
*/
//输入main,回车
public static void main(String[] args) {
//sout 回车
System.out.println("月黑风高的夜晚,我们在学习!!!");
}
}
总结:
- java是大小写敏感,严格区分大小写
- main方法也叫主函数,在一个类中只有一个main方法。
- java中每一条语句都是以分号结束标志
执行过程(了解):
- 先启动虚拟机JVM
- JVM会加载HelloWorld的.class字节码文件
- 会进入到这个类的main方法中去执行。main方法是程序的入口。
单元测试:
import org.junit.Test;
/**
* 单元测试:
* 注意和main方法的区分
*
*/
public class Demo01 {
//写一个单元测试的方法
//注意:没有任何返回值 void
@Test
public void test01(){
System.out.println("获取java的版本号:" + System.getProperty("java.version"));
System.out.println("获取当前用户登录:" + System.getProperty("user.name"));
}
@Test
public void test02(){
System.out.println("我们是最棒的!!!");
}
public static void main(String[] args) {
System.out.println("我们努力学习,毕业找个好工作!!!");
}
}
单元测试的总结:
-
单元测试的类可以独立运行的,只是用在了测试的阶段,其他的时候一般不会使用到。
-
@Test注解修饰的方法,没有返回值,void,可以单独运行。
-
单元测试可以存在多个,单独运行的时候,不会影响其他的单元测试方法。
扩展
jdk:jre和开发工具
jre:jvm和核心类库
jvm:java虚拟机
一、变量
1、什么是变量
代词
Person p;//代表一个人
int age;//代表年龄
String name;//代表姓名
2、变量的声明
int age;//声明了一个int类型的变量,变量的名称是age。
String name;
java是一种强类型的语言。
格式:数据类型 变量名称;
变量要声明,声明之后要进行初始化。
3、变量的命名
- 严格区分大小的 age AGE
- 字母、数字、下划线、美元符号$组成的。
- 不能以数字开头。123abc
- 不能是java中的关键字。int int;
- 不推荐使用中文作为变量名;int 年龄;
- 见名知意。
练习:
下面的代码正确吗?
int 123go = 100;//不可以
int 成绩 = 60;//可以,但不建议
int break= 200;//不可以
int score = 80;//没问题
System.out.println(Score);
4、变量的初始化
未经初始化的变量不能使用
public static void main(String[] args) {
int a, b = 10;
int c = a + b;
System.out.println(c);
}
在变量声明时初始化
public static void main(String[] args) {
int a = 10, b = 10;
int c = a + b;
System.out.println(c);
}
在第一次使用变量前初始化
public static void main(String[] args) {
int sum;
sum = 0; // 在使用sum变量之前对其进行初始化。
sum = sum + 100;
System.out.println(sum);
}
5、变量的访问
可以对变量中的值进行存取、操作
public static void main(String[] args) {
int a = 100;
a = a + 200;
}
变量的操作必须与类型匹配
public static void main(String[] args) {
int salary;
salary = 15000.50;//编译报错
double d = 123.456;
int n = d%2;//编译报错
}
二、进制
1、二进制与十进制的转化问题
十进制转二进制分为整数转二进制,和小数转二进制
整数转二进制
采用"除2取余,逆序排列"法:
1.首先用2整除一个十进制整数,得到一个商和余数
2.然后再用2去除得到的商,又会得到一个商和余数
3.重复操作,一直到商为小于1时为止
4.然后将得到的所有余数全部排列起来,再将它反过来(逆序排列),切记一定要反过来!
小数转二进制
采用"乘2取整,顺序排列"法:
1.用2乘十进制小数,可以得到积,将积的整数部分取出
2.再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出
3.重复操作,直到积中的小数部分为零,此时0或1为二进制的最后一位,或者达到所要求的精度为止
三、java中数据类型
数据类型:基本类型和引用数据类型。
基本数据类型
8种基本数据类型(四大类:整型、浮点型、字符型、布尔类型):
byte、short、int、long
float、double
char
boolean
类型名称 | 字节空间 | 使用场景 |
---|---|---|
byte | 1个字节(8位) | 存储字节空间(比较常用的) |
short | 2个字节(16位) | 兼容性考虑(很少使用) |
int | 4个字节(32位) | 存储普通的整数(常用的) |
long | 8个字节(64位) | 存储长整数(常用的) |
float | 4个字节(32位) | 存储浮点数(不常用) |
double | 8个字节(64位) | 存储双精度的浮点数(常用的) |
char | 2个字节(16位) | 存储一个字符(常用的) |
boolean | 1个字节(8位) | 存储逻辑变量(true、false)(常用的) |
1、int类型
public static void main(String[] args) {
int x = 100000;//10进制
int y = 0x186a0;//16进制
int z = 032456;//8进制
// int p = 12345678901234;//编译错误,因为该数超出了int的表示范围。
//-2147483648 ~ 2147483647
//注意:java中默认写出来的整数都是int类型的,而该数你要看是否超出了int法人范围。
}
整数数据类型中除法运算中的取整
int x = 5 / 3;
注意:两个整数相除,得到的结果是整数,在运算的时候,会舍弃小数部分,保留整数部分,不是四舍五入。
3、long类型
- 在表示整数的时候,如果说int类型表示的范围不够的时候,我们会使用long类型。一个long类型占8个字节,64位、
- 如果是要表示long类型,需要使用L或者l结尾。
/**
* 这是因为整型进行运算时默认转化为int型进行运算,从而导致(b1 + b2)实际为int型,而int如果使用b3(byte型)接收将损失精度。故编译不通过。
* 如果想b3 = b1 + b2 通过编译,需要将 (b1 + b2)强转为byte,例如:b3 = (short) (b1+b2) 。short也同理。
*/
public class Test02 {
public static void main(String[] args) {
byte b1 = 10;
byte b2 = 20;
// byte b3 = b1 + b2;
byte b3 = (byte) (b1 + b2);
System.out.println(b3);
}
}
2、double类型
使用double进行浮点数的运算
-
浮点数,小数。包括:float和double
-
double类型的精度值是float的两倍。双精度
-
大部分的场合都是使用double类型进行表示浮点数。
double pi = 3.14;
double r = 5;
double s = pi * r * r;
浮点数的直接量有两种写法:
- 通常的写法:3.14,0.09,0.7
- 1.52E2代表是1.52乘以10的2次方
默认的浮点数的直接量是double类型的吗,如果需要表示float类型的量,需要在后面加上f或这F为后缀
double精度问题
/**
* double在运算的时候会出现舍入误差
* 二进制系统中无法准确表示1/10,就好比是十进制中的无法准确表示1/3,
* 对于一些精度要求比较高的场合下,会出现代码的缺陷。
* 如果需要精度就比较高的,可以舍弃double类型,而是用BigDecimal类来进行实现。
*/
public class DoubleDemo01 {
public static void main(String[] args) {
double money = 30000.0;
double price = 29999.9;
System.out.println(money - price); //0.09999999999854481
}
}
3、char类型
-
字符型char是一个16位进制无符号整数,这个值对应的字符的编码。
-
java中字符型是采用Unicode字符集进行编码。Unicode是世界上定长的字符集,他的每一个字符都是16位。
-
字符直接量可以采用:‘我’,也可以使用16进制的进行表示。
/** * char类型的变量赋值:3种方式 * 1、字符直接量进行赋值:'A',变量中实际存储的是该字符下的Unicode编码(无符号整数值),一个char类型的变量只能存储一个字符 * 2、整型直接量:使用的时候,范围是0-65535之间的整数。 * 变量中实际存储的是该整数值,但是表示的该整数值对相应的Unicode字符。 * 3、使用Unicode形式:’\u0041',Unicode字符的16进制的形式。 */ public class CharDemo01 { public static void main(String[] args) { char c1 = '张'; char c2 = 65; char c3 = 'A'; char c4 = '\u0041'; System.out.println(c1); //张 System.out.println(c2); //A System.out.println(c3); //A System.out.println(c4); //A } }
转义字符
转义字符 | 含义 |
---|---|
‘\n’ | 表示回车符 |
‘\r’ | 表示换行符 |
‘\\’ | 表示反斜杠 |
‘\’’ | 表示单引号 |
‘\t’ | 表示制表符 |
4、boolean类型
- boolean的默认值是false。
- boolean的类型一般使用在逻辑运算的,表示某个条件是不是成立。一般用在程序的流程控制。
- boolean类型的取值只有两个:true、false
- boolean类型还经常用在存储运算关系的结果