安装、搭建Java开发环境
1、安装软件开发工具(SDK)软件开发工具包
2、把javac,java,javadoc所在路径JDK安装目录的bin目录,添加系统PATH环境变量中。
PATH环境变量是告诉操作系统到哪里去找可执行性的命令。
3、可选的配置:CLASSPATH环境变量。
CLASSPATH环境变量是有用的。
CLASSPATH环境变量是告诉JAVA到哪里去找所用到的类。
扩展后的赋值运算符(a+=b),自动提升并有强制转换。
比较运算符,只能返回true或false,比较运算符的左右变量,即可是变量,也可是直接量,也可以是表达式。
逻辑运算符,它的操作数要求只能是boolean值。
三目运算符: 逻辑表达式 ?表示1 :表达式2-->如果逻辑表达式返回true,整个表达式的为表达式1的值;如果逻辑表达式返回false,整个逻辑表达式的为表达式2的值。(这种形式)
自加时候的陷阱:先取出来存放在内存中,执行自加运算改变后,原来内存再次进行赋值,恢复原来的值。(这是因为赋值运算是最低的级别,最后执行,赋值)
流程控制:1.顺序结构 2.分支结构(if语句,switch语句)3.循环结构
在分支语句中的switch(返回值是byte,short,char,int或者是string,或者是枚举的表达式){}注意:break的作用。
在循环中有几个关键字:
--break:完全结束一个循环本身。
--continue:停止当前循环的执行(相当于忽略continue之后的语句),开始下一次循环体。如果continue位于循环体的最后部分,它就是多余的。
--return:结束方法(主方法之类的)的。(只要遇到return存在就直接结束方法)
break,continue之后都可以紧跟标号,带标号的break用于结束标号所标识的循环;带标号的continue用于忽略标号所标识的循环后面剩下的语句(注意自己细心的分析就可以,避免粗心)
数组类型:在任何已有类型后加上方括号[],又变成一种新类型,这种类型统称为数组类型,所有的数组类型又称为引用类型,所以又称为引用类型。
Java的数组既可以存储基本类型的数据,也可以存储引用类型的数据。
类型是type[] arrayname(类型是type[] ,变量名是 arrayname)
数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。
--定义数组时不能指定数组的长度。
--数组类型,是一个真正的类型,它即可以创建变量,也可用于进行强制类型转换。
数组的初始化
--数组变量只是一个引用,必须让它指向有效的内存之后才能使用。
--数组初始化分为2种:
1、静态初始化 :new <type>[]{<ele1>,<ele2>,...},只指定数组的元素,让系统来决定数组的长度。
2、动态初始化 :new <type>[<length>]只指定数组的长度,让系统来决定数组的元素的值。
如果数组元素是基本类型,那么所有数组元素的值都是0/0.0/false/\uxxxx
如果数组元素是引用类型,那么所有数组元素的值都是null。
--一旦数组的初始化完成,接下来的每个数组元素就可以当成普通变量使用了。
遍历数组:这里重点是使用foreach循环进行遍历。foreach循环中,对循环变量赋值没有意义。
for(类型 变量名:数组|集合)
{
//此处即可通过"变量名"依次访问每个数组|集合的元素
}
深入理解数组的存放:所有在方法里声明的变量,都放在对应的方法栈。每个方法运行时,系统都会为之建立一个方法栈。
栈内存是临时性的内存,当方法结束时,方法栈会立即释放,所以栈内存不适合存放长期有效的数据。
每个Java虚拟机JVM只有一个“堆”内存。所有对象都是在“堆”内存。只要不释放,就“堆”将一直存在。
在Java程序中,只要访问“引用”的方法、属性时,系统会自动切换到访问它实际的对象,
堆内存中的对象,只能通过引用变量来访问。
1、内存泄露:C语言,把内存分配出去之后,后面忘记了回收这些内存。
2、内存回收更早。
JVM有一条后台进程,垃圾回收器。它会用一种机制记录,堆内存中“每个对象”是否有引用变量(引用)引用它。
如果有,垃圾回收器就不会管它,否则,垃圾回收期就会在合适的时候去回收该对象所占的内存。
即也就是即使引用变量被销毁之后,数组并不一定会被回收(它在堆内存中),不会随着引用变量被回收。注意:引用变量和对象的区别。
java允许初始化数组时候只初始化左边的维数,也是数组的长度,当然也允许左右两边同时赋初始值。这样的话即便是多维数组的赋值情况也要深入的分析内存引用的赋值情况。
Arrays工具类,有一些方法来操作数组。(以下均为类方法)
binarySearch-->二分法查找。(要求数组元素是有序的)返回值是指定数据的索引。
sort(char []a)-->对数组进行排序。
fill(type[] a,int fromIndex,int toIndex,type value)-->填充value值。
tostring(数组名)-->直接可以查看数组内容。
|