Java开发环境
一、Linux操作系统
二、Java开发环境

1.Java编译过程
>.程序员编写的Java源文件(.java)首先要经过编译,生成字节码文件(.class);
>.Java程序运行需要JVM的支持,JVM是安装在操作系统上的软件,为字节码文件提供运行环境。
>.一次编程到处使用-跨平台性
>.Java官方提供了针对不同平台的JVM软件,遵循着相同的规则,只要是class文件,就可以在不同的JVM上运行。
2.JVM、JRE、JDK之间的关系(面试)
>.JDK-Java Development Kit
Java开发工具包
>.JRE-Java Runtime Environment
Java运行环境
>.JVM- Java Virtual Mechines
Java 虚拟机
3.安装JDK
1.官方网址www.oracle.com
2."傻瓜式"安装
3.默认位置 : C:\Program Files\Java
4.配置环境变量
4.目的:让操作系统可以找到命令文件(jdk和jre 的bin目录)所在的目录。
5.环境变量下的系统变量中的Path去配置。
6.配置环境变量的步骤:
7.我的电脑->右键->属性
8.配置JAVA_HOME
9.配置Path
10.配置CLASSPATH
5.控制台的HelloWorld
1. 在任意盘符下新建一个HelloWorld.txt
2. 输入代码如下
public class HelloWorld{ public static void main(String[] args) { System.out.println("hallo"); } }
3. 将HelloWorld.txt改为HelloWorld.java
4. 打开cmd命令提示符编译运行源程序
二、Eclipse IDE
1.Eclipse简介
>.IDE(Integrated Development Environment)集成开发环境,能为程序员开发简化步骤。集成的是编译、调试、提交、重构等。
>.官网:www.eclipse.org
Java变量
什么是变量?
在变量中开辟的空间,用于存放运算过程中需要的用到的数据。
int a =5; int b=10 ; int c =a+b;
一、变量的声明– 变量类型 变量名
1.未经声明的变量不能使用
>.变量的使用必须声明
>.常见的拼写错误,是错误变量没有被声明。
2.一条语句中声明多个类型的变量
>.中间用逗号隔开
int a = 1,b=2;
二、变量的命名
1.命名需要符合标识符的语法
>.由字母、数字、_和$组成
>.首字符不能以数字开头
>.大小写敏感
>.不能使用Java保留字 goto
>.不能使用关键字
>.中文可以命名但不建议
2、在声明时初始化 *
变量类型 变量名称 =值;
三、变量的初始化
int a =10; //给整形的a赋值为10;
1.在第一次使用变量前初始化
int a;
a=100;
int sum =a+sum;
四、变量的访问
1.可以对变量中的值进行存取、操作
>.变量是存放数据的空间,可以对其赋值、更改和操作;
>.对变量的操作其实是对变量中存储的数值的操作。
int a =100;
a+=100; //本行代码也等于 a =a +100;
//将变量a中的值加上100后所得的结果存储在变量a中。
2.变量的操作必须类型匹配(重点)
>.变量在指定声明类型后,Java编译器会检测对该变量的操作是否类型匹配,如果不匹配则编译错误。
int salary ;
// salary =10.0 ; 整数是不可以给赋浮点数的值
double money;
//money =13.9/2; 这个是肯定是浮点数
Java的基本类型
>.8种基本类型
byte –> short -> int-> long -> float -> double
>.8种基本类型所占字节空间
一、int
>.整数的直接量为int。
>.存储范围: -2147483648~2147483647 -2^(n-1) ~~~ 2^(n-1) -1-2^31 ~ 2^31-1 -2^63~2^63-1
1. 整数的直接量为int
>.直接量(literal)表示直接写出的整数。
int a = 100; //100就是直接写出整数,类型默认为int。
>.整数直接量的数字必须在int的范围内。
>.除了进制书写形式外,整数的直接量也经常写为16进制数值,以0X或0x或者8进制的0开头。
int c = 0x10;//16进制整数直接量
int d = 020;//8进制整数直接量
System.out.println(c);
System.out.println(d);
2.整型数据的除法运算中的取整
>.除法运算保留整数部分,舍弃小数部分
//2.整数除法运算中的取整
int q = 5/3;//1
System.out.println(q);
int total = 87;
int error = 23;
int percent = error / total * 100;
System.out.println(percent + " %"); //0
percent = 100 * error / total;
System.***out\***.println(percent + "%");//26
3.运算时要防止溢出发生
>.整数运算的溢出:两个整数进行运算时,其结果可能会超出整数的范围而产生溢出。
//3.防止整数运算发生溢出
byte w = (byte)(127 + 1);
System.out.println(w);//-128
二、long
>.在表示较大整数的时候,int范围不够的情况下,范围:-2^63~2^63-1.
>.表示long类型的直接量,需要以L或者l结尾。
long l1 = 2147483647;//对的
long l2 = 2147483648;//编译错误,超出整数直接量的范围,也就是int值得范围。
1.使用long类型进行较大整数的运算
>.较大整数:超过int范围的整数
long distance1 = 1000*365*24*299792458;//使用较大整数运算 System.out.println(distance1);
//4个int相乘结果一定为int,则超出int范围导致溢出!
long distance2 = 1000*365*24*299792458L;
System.out.println(distance2);//4个int乘long,结果一定为long
2.通过时间毫秒数来存储日期和时间
>.JDK提供了一个方法,返回1970年1月1日0点0分0秒到此时此刻所经历的毫秒数,其数据类型为long。
long time = System.currentTimeMillis();
System.out.println(time);
三、double
>.小数的写法有一下几种:
1. 1>.通常写法:3.14 、314.0
2. 2>.科学计数法: 1.25E2、1.25e2、1.25E-2eg:1.25E2 1.25*10^2=125.0
>.默认浮点直接量为double类型。如果需要表示float类型,则需要在末尾加F或者f。
float f = 1.25F;
2.double运算时会出现舍入误差(面试)、
>.2进制中无法精确地表示1/10,就和10进制无法精确表示1/3一样。
>.二进制表示10进制可能会有误差。
double money = 3.0;
double price =2.9;
System.out.println(money- price);//输出结果为0.100000000009 舍入误差!
四、char
>.本质16位无符号的整数。对应的是字符集的编码。
>.采用的编码是Unicode编码(世界通用的定长字符集,所有字符都是16位)。
//字符型
char c1 = \'中\';
char c2 = \'\u4e2d\'
; char c3 = (char) (c1 + 1);
int i = \'中\' + 1;//\'中\' 20013 //0000 0000 0001 0000 == 16
int z = \'中\';//20013
char c4 = \'1\';
char c5 = 1;
System.out.println(c1);//中
System.out.println(c2);//中
System.out.println(c3);//不认识的汉字
System.out.println(i);//20014
System.out.println(z);//20013
System.out.println(c4);//1
System.out.println(c5);//_
1.对char型变量进行赋值
整型变量 : 0~65535之间的整数数值
字符直接量 :用单引号括起来的内容就为字符的实际内容 ‘A’ ‘1’
Unicode形式:‘\u004e’、‘\u4e2d’,Unicode 的16进制形式
char a =65;
char a =\'a\';
char a=\u0041\'\';
System.out.println(c1);//A
System.out.println(c2);//A
System.out.println(c3);//A
2.使用转义字符
对于不方便输出的字符采用转义
五、boolean
1. booean是逻辑运算类型
2. 赋值只有 true 或者 false
3. 经常用于存储关系运算的结果值
int age =18;
boolean isage = age >16;
System.out.println(isage);// true
六、(重点)基本类型间的转换
1.基本类型转换
自动类型转换(隐式类型转化): 小类型 --> 大类型
可以自动转换的,且大小关系如下图:
强制类型转换:大类型 -->小类型
需要转换符,格式为: (需要转化的类型) 变量
注意:这样转化可能 精度丢失或者 溢出。
2.强制转化时的精度丢失和溢出
int a=100;
int b=200;
int c=a+b;
System.out.println(c); //答案为:300
long b=200l;
int a =(int)b; //强行转换
System.out.println(a); //输出:200
long l = 1024L*1024*4*1024;
4*1024; int j = (int)l;//0
System.out.println(j);
double pi = 3.141592654789456132;
float f = (float)pi;//3.1415927 造成精度丢失
System.out.println(f);
精度丢失:转化后存储的小数位不是原来的小数位。
3.数值运算时的自动转换
多种基本类型参与的表达式运算中,运算结果会自动向较大类型转换。
//3.多种基本类型参与运算会向较大类型转换
long l3 = 123*456*789L;//int*int*long 向long转化
double d = 500-599.0;//-99.0
double persent2 = 80/100.0;//0.8
4.byte、short、char转化为int
byte、short、char实际存储数值都为整数
在参与运算时,会将byte、short、char都转化为int在进行运算。
int a =12;
int b =3;
int c = \'a\';
int sum =a+b+c; //80
运算符
一、算术运算
1.使用%运算符
Java中的运算符除了加减乘除外,还有取余(%)运算及自增(++)自减(--)
取余(取模),意为取余数,可用于整数、char和浮点数。
//取余
int n=225;
char n2 = \'A\';
double n3 = 16.8;
System.out.println(n3%8);//0.8000000000000007
2.自增和自减运算
前置自增自减: 先自增自减后运算
后置自增自减: 先运算后自增自减
int a =10 ;
int b =21;
int a1 =a++;
int b2 =b++;
System.out.println("a="+a +","+"b="+b+","+"a1="+a1+","+"b1="+b1);
// 10 21 11 22
结论:
变量无论是前置还是后置运算其结果一定为+1
只在使用它的时候考虑其前置和后置规则