Java 入门
Java简介
JVA
- Jvm(Java Virtual Machine),Java虚拟机
- Jvm是Java平台无关性实现的关键
JDK
- JDK(Java Development kit),Java语言的软件开发工具包
- 两个重要组件:
- Java-编译器,将原程序转成字节码
- java-运行编译后的Java程序(.class后辍)
JRE
- JRE(Java Runtime Environment)
- 包括Java虚拟机(JVM)丶Java核心类库和支持文件
- 如果只需要运行Java程序下载并安装JRE
- 如果需要开发Java软件,需要下载JDK
- 在JDK中附带JRE
JDK·JRE和JVM三者关系
JAVA平台
Java程序结构
public class HelloImooc{
public static void main (String[] args){
System.out.println("Hello,Imooc!");
}
}
JDK安装和环境搭建
-
windows版下载
下载链接https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
-
安装
- 双击安装JDK
- 记住安装的路径
-
配置环境变量
1.我的电脑–>右键–>属性
2.环境变量–>JAVA_HOME
3.配置path变量
-
测试JDK是否安装成功
1.打开CMD
2.java -version
Java基础
01Java注释
-
平时我们编代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
-
注释并不会被执行,是给我们写代码的人看的。
-
书写注释是一个非常好的习惯。
-
JAVA中的注释有人三种:
1.单行注释
//单行注释
//单行注释
2.多行注释
/*多行注释
多行注释
多行注释
*/
3.文档注释
/**
*
*/
02java标识符
- 关键字
-
JAVA所有的组成部分都需要名字。类名丶变量名以及方法名都被称为标识符
-
标识符注意点
- 所有的标识符都应该以字母(A-Z或者a-z)丶美元符($)丶或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z)丶美元符($)丶或者下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age丶$salary丶_value丶__1_value
- 非法标识符举例:123abc丶-salary丶#abc
public class Hello { public static void main(String[] args) { String 王者荣耀="最强王者" System.out.println("王者荣耀"); } }
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low
03JAVA数据类型
-
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
- 弱类型语言
-
JAVA的数据类型分两大类
- 基本类型(primitive type)
- 引用类型(reference type)
public class Hello {
public static void main(String[] args) {
//八大基本类型
//整数
int num=10; //最常用
byte num1=20;
short num3=30;
long num3=30L; //Long类型要在数字后面加个L
//小数:浮点数
float num5=50.1F; //float类型要在数字后面加个L
double num6=3.141545;
//字符
char name='国'
//字符串,String不是关键字,类
//string name="哈哈";
//布尔值
boolean flag=true;
boolean flag=false;
}
}
04数据类型扩展及面试题讲解
public class day01 {
public static void main(String[] args) {
//整理扩展 二进制:0B 八进制:0 十进制 十六进制:0x
int i=10;
int i2=010; //八进制
int i3=0x10; //十六进制 0-9 a-f 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("===========================");
//================================
//浮点数怎么表示? 银行业务怎么表示?钱
//BigDecimal 数学工具
//================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f=0.1f; // 0.1
double d=1.0/10; // 0.1
System.out.println(f==d); //false
float d1=252422122f;
float d2=d1+1;
System.out.println(d1==d2);
//================================
//字符扩展
//================================
char c1='中';
char c2='国';
System.out.println(c1);
System.out.println((int)c1); //强制转换
System.out.println(c2);
System.out.println((int)c2); //强制转换
//所有的字符本质就是数字
//编码unicode 表:2字节 0-65536 Excel 2 16=65536
//u0000 uFFFF
char c3='\u0062';
System.out.println(c3);
//转移字符
// \b 退格(BS) ,将当前位置移到前一列
// \f 换页(FF),将当前位置移到下页开头
// \n 换行(LF) ,将当前位置移到下一行开头
// \r 回车(CR) ,将当前位置移到本行开头
// \t 水平制表(HT) (跳到下一个TAB位置)
// \v 垂直制表(VT)
// \\ 代表一个反斜线字符''\'
// \' 代表一个单引号(撇号)字符
// \" 代表一个双引号字符
// \0 空字符(NULL)
// \ddd 1到3位八进制数所代表的任意字符
System.out.println("Hello\tworld");
System.out.println("Hello\nworld");
System.out.println("==============================");
String sa=new String("hello world");
String sb=new String("hello world");
System.out.println(sa==sb);
String sc="hello world";
String sd="hello world";
System.out.println(sc==sd);
//对象 从内存分析
//布尔值扩展
boolean flag=true;
if (flag==true) { } //新手
if (flag){ } //老手
//less is more! 代码要精简易读
}
}
05类型转换
- 由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低------------------------------------------->高
byte,short,char–>int–>long–>float–>double
-
运算中,不通类型的数据先转换为同一类型,然后进行运算。
-
强制类型转换
-
自动类型转换
public class Demo02 {
public static void main(String[] args) {
int i=128;
byte i1=(byte)i; //内存溢出
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);
System.out.println(i1);
/*
*注意点
* 1.不能对布尔性进行转换
* 2.不能把对象类型转换成不相干的类型
* 3.把高容量转换成低容量的时候,强制转换
* 4.转换的时候可能出现内存溢出,或者精度问题!
* */
System.out.println("=======================================");
System.out.println((int)127.1);
System.out.println((int)-12.12f);
System.out.println("===========================");
char a='a';
int b=a+1;
System.out.println(b);
System.out.println((char)b);
}
}
public static void main(String[] args) {
//操作比大的数的时候,注意溢出问题
// JDK7新特性,数字之间可以用下划线分割
int money=10_0000_0000;
int years=20;
int tota1=money*years; //-1474836480,计算式溢出
long tota2=money*years;//默认是int,转换之前已经出问题了。
long tota3=money*((long)years); //先把一个数转换成long
System.out.println(tota3);
}
}