java入门必会
Java都有那些开发平台?
- JAVA SE:主要用在客户端开发
- JAVA EE:主要用在web应用程序开发
- JAVA ME:主要用在嵌入式应用程序开发
java:是一门面向对象的高级的计算机编程语言
Java语言编译过程
1.1) 编译期:Java源文件,经过编译,生成.class字节码文件
1.2)运行期:JVM加载.class并运行.class(0和1)
特点: 跨平台,一次编程任何地方可以用
环境
2.1.1)JDK - Java Development Kit (Java开发工具包)
除了包含JRE以外还包含开发Java程序所必需的命令
JDK=JRE+编译.运行等命令工具
(开发一个Java程序最小环境为JDK)
**2.1.2)JRE - Java Runtime Environment (Java 运行环境) 除了包含JVM以外还包含运行** Java程序所必须的环境JRE=JVM+Java 系统类库
(运行Java程序最小的环境为JRE)
**2.1.3)JVM - Java Virtual Machines (Java虚拟机) 加载.class并运行.class**
|编译.运行等开发工具| |
|-Java系统类库-|-JRE-|
| JVM | |
Java的数据结构有那些?
1.线性表(ArrayList)
2.链表(LinkedList)
3.栈(Stack)
4.队列(Queue)
5.图(Map)
6.树(Tree)
访问修饰符 public,private,protected,以及不写(默认) 时的区别?
**
**
类的成员不写访问修饰时默认为 default。默认对于同一个包中的其他类相当于公 开(public),对于不是同一个包中的其他类相当于私有
(private)。受保护 (protected)对子类相当于公开,对不是同一包中的没有父子关系的类相当于私 有。Java 中,外部类的修饰符只能
是 public 或默认,类的成员(包括内部类)的 修饰符可以是以上四种。
什么是变量?
变量是存放数据的空间,可以对其赋值,变更和操作;要把变量的操作理解为是对其所存储的数据的操作
可以对变量中的值进行存取,操作
标识符的命名规则。
1. 标识符的含义:
是指在程序中,我们自己定义的内容,譬如,类的名字,方法名称以及变量名称等等,都是标识符。
2. 命名规则:(硬性要求)
标识符可以包含英文字母,0-9的数字,$以及_,不能以数字开头
标识符严格区分大小写
标识符不能用关键字
标识符可以中文命名,但不建议.
3. 命名规范:(非硬性要求)
类名规范:首字符大写,后面每个单词首字母大写(大驼峰式)。
变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
方法名规范:同变量名。
3.1)对变量的操作就是对它所存在的那个数的操作
3.2)变量的使用必须与数据类型匹配
3.3)变量在使用前必须声明并初始化
通过时间毫秒书来存储日期和时间
JDK提供System.currentTimeMillis() 方法,返回1970年1月1日零点到此时此刻所经历的毫秒数,其数据类型为Long,该方法经常用于计时操作
/**2.Java给8大基本类型都提供了类型对应的“工具箱”*/
Java中各种数据默认值
Byte,short,int,long默认是都是0
Boolean默认值是false
Char类型的默认值是’’
Float与double类型的默认是0.0
对象类型的默认值是null
运算:
1.)整形数据的除法运算中的取整
两个整数相除,会舍弃小数的部分(不是四舍五入),结果也是整数.
2.)运算时要防止溢出的发生
整数运算的溢出:两个整数运算的时候,其结果可能会超过整数的范围而溢出.
(要转换成为的数据类型)变量强转有可能溢出或丢失精度
基本数据类型间的转换
1.1)自动类型转换(隐式类型转换):小类型到大类型
1.2)强制类型转换:大类型到小类型(需要转换成的类型)变量
这样转换可能会造成精度损失或溢出
byte.char.short 三种类型实际存储的数据都是整数,在实际使用中遵循如下规则:
1.1) (int)整数直接量可以直接赋值给byte.chart和short,只要不超过其表示范围
1.2) byte char short 三种类型参与运算时,先一律转换成int类型在进行运算
1整形类型:byte short int long
byte byteMin = Byte.MIN_VALUE;
byte byteMax = Byte.MAX_VALUE;
System.out.println("byte类型的最小值为:" + byteMin);
System.out.println("byte类型的最大值为:" + byteMax);
byte类型的最小值是:-128 byte类型的最大值是:127
short shortMin = Short.MIN_VALUE;
short shortMax = Short.MAX_VALUE;
System.out.println("short类型的最小值为:" + shortMin);
System.out.println("short类型的最大值为:" + shortMax);
short类型的最小值是:-32768 short类型的最大值是:32767
int intMin = Integer.MIN_VALUE;
int intMax = Integer.MAX_VALUE;
System.out.println("int类型的最小值为:" + intMin);
System.out.println("int类型的最大值为:" + intMax);
int类型的最小值是:-2147483648 integer int类型的最大值是:2147483647
**/3.int类型的工具箱比较特殊,叫做:> Integer<*/
long longMin = Long.MIN_VALUE;
long longMax = Long.MAX_VALUE;
System.out.println("long类型的最小值为:" + longMin);
System.out.println("long类型的最大值为:" + longMax);
**
long类型的最小值是:-9223372036854775808 long类型的最大值是:9223372036854775807
**
/**4.浮点类型 :float double*/
float floatMin = Float.MIN_VALUE;
float floatMax = Float.MAX_VALUE;
System.out.println("float类型的最小值为:" + floatMin);
System.out.println("float类型的最大值为:" + floatMax);
float类型的最小值是:1.17549435E-38 float类型的最大值是:3.4028235E38
double doubleMin = Double.MIN_VALUE;
double doubleMax = Double.MAX_VALUE;
System.out.println("double类型的最小值为:" + doubleMin);
System.out.println("double类型的最大值为:" + doubleMax);
double类型的最小值为:4.9E-324 double类型的最大值为:1.7976931348623157E308
/**5.boolean布尔类型只有两个值true与false
* 虽然true和false不是关键字,但是也不可以用作标识符*/
boolean b1 = true;
boolean b2 = false;
布尔类型boolean只有两个值:true和false
*6**.测试char 字符类型**
* 字符型的数据需要使用单引号 ’ ’ 来包裹 * char类型可以存数字,但是会从ASCII码表查出这个数字对应的字符来打印
* 128~65535这些数字,也可以保存,*/
//1.创建程序的入口函数main
public static void main(String[] args) {
char c1 = 'a';//字符型可以保存一个字母
char c2 = '中';//字符型还可以保存一个汉字
char c3 = '7';//字符型可以保存一个字符7
char c4 = 97;//字符型可以保存数字,但是会查ASCII,打印的是字符a
char c5 = 55;//字符型可以保存数字,但是会查ASCII,打印的是字符7
char c6 = 199;
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
**
两个变量的值进行互换
**
//2.提示并接受用户在控制台输入的两个整数
System.out.println("请输入要交换的第一个整数:");
int a = new Scanner(System.in).nextInt();
System.out.println("请输入要交换的第二个整数:");
int b = new Scanner(System.in).nextInt();
System.out.println("a的值:" + a);
System.out.println("b的值:" + b);
//3.交换 a b 这两个变量保存的值
int Z;//定义一个变量用来辅助值交换
z= a;//把a的值交给t来保存
a = b;//把b的值交给a来保存
b =z;//把t的值交给b来保存
System.out.println("交换后,a的值:" + a);
System.out.println("交换后,b的值:" + b);
字面值是int类型,需转成long类型的数据,加字面值后缀L即可
`long x =99999999999L`
3.0字面值是double类型,加后缀F会变成float类型
`
double b = 33.30;
float f=(b)F
`
3字面值是int类型,加后缀D,会变成double类型*/
int a = 123333;
double d=123333D
小到大(隐式转换)
byte m = 120;
int n = m;//小转大,右面的m是小类型,给左面的n大类型赋值,可以直接使用
float f = 3.2f; double d1 = f; //-->可以执行
大到小(显式转换)
容量大的类型转换为容量小的类型时必须使用强制类型转换。
int x = 999;
byte y =(byte)x;//大转小,右面x给左面的y小类型赋值,不可以,需要强制类型转换
口诀:
小到大,直接转 大到小,强制转 浮变整,小数没
低 ------------------------------------> 高
byte,short,char→ int→ long→float→double
//溢出的现象:
//因为做了大的整型数据的运算,会超出int取值范围。解决方法:把整数提升成long类型。
String字符串类型,需要用双引号包裹
引用类型是一个对象类型,它的值是指向内存空间的引用,就是地址,
所指向的内存中保存着变量所表示的一个值或一组值。如:类,接口,数组,*/
形参与实参区别
实参(argument):
全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用
时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
形参(parameter):
全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数
时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。
实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传
送。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结
束返回
主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传
送给形
参。 因此应预先用赋值,输入等办法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,
形参的值
发生改变,而实参中的值不会变化。
5.当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一
份,在该
函数运行结束的时候形参被释放,而实参内容不会改变。 Java.lang Java.io Java.sql Java.util Java.awt Java.net Java.math Equals Hashcode toString wait notify clone getClass
而如果函数的参数是指针类型变量,在调用该函数的过程中,传给函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就
是实参
本身。所以在函数体内部可以改变实参的值。
3)注释:解释性文本
3.1)单行注释://
3.2)多行注释:/* */
3.3)文档注释:/** */
以上纯属自己理解,如有错误请多多指教谢谢