java基础——第一章概述
jdk1.0包括两个部分:运行环境(jre)和开发环境(jdk)
jre(java runtime environment),就是java程序的运行环境,包括五个部分:核心API、集中API、用户界面API、发布技术、java虚拟机(jvm)五个部分,
以及编译java程序的编译器。
1998年12月,jdk1.2问世,JSP/servlet、EJB规范,并将java分成了J2EE,J2SE,J2ME三个版本,其中:
J2ME:主要用于控制移动设备和信息家电等有限存储的设备;
J2SE:是整个java的核心与基础
J2EE:应用最广泛,提供了企业应用开发相关的完整解决方案;
至此,java语言在企业应用领域大放异彩,大量基于java语言的开源框架涌现:struts、webwork、hibernate、spring等。
当java编译器编译java程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体平台,它只面向jvm,JVM是可运行java字节码文件的虚拟机,
不同平台的JVM不同,所有平台的JVM向编译器提供相同的编程接口。JVM是一个抽象的计算机,和实际的计算机一样,它具有指令集并使用不同的存储区域,
它负责执行指令,还要管理数据、内存和寄存器。JVM有如下细节:指令集,寄存器,类文件格式,栈,垃圾回收堆,存储区。
public class hello { public static void main(String[] args) { for(int i=0;i<3;i++) { System.out.println("i="+i); if(i==1) { return; } System.out.println("continue后的输出语句"); } } }
结果:
数组: java语言是面向对象语言,能很好地支持类与类之间的继承关系,这样可能产生一个数组里可以存放多种数据类型的假象;注意,定义数组时不能指定数组的长度,只有对数组进行初始化以后才能使用;
所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值,不能只分配内存空间而不分配初始值,初始值可以为空null;有两种初始化方式,静态初始化及动态初始化。
foreach循环: foreach循环遍历数组和集合元素时,无须获得数组和集合长度,无须根据索引来访问数组元素和集合元素,foreach循环自动遍历数组和集合的每个元素;
格式用法:for(type variableName:array|collection)type是数组元素和集合元素的类型,variableName是一个形参名,foreach循环将自动将数组元素和集合元素依次赋给该变量。
public class hello { public static void main(String[] args) { String[] books={"李四","王二","张三"}; for(String book:books) { System.out.println(book); } }
多维数组:
public class hello { public static void main(String[] args) { int[][] a; a=new int[3][]; for(int i=0;i<a.length;i++) { System.out.println(a[i]); } a[0]=new int[2]; a[0][1]=6; for(int i=0;i<a[0].length;i++) { System.out.println(a[0][i]); } } }
操作数组的工具类:java提供的Arrays类里包含了一些static修饰方法可以直接操作数组,这个Arrays类里包括了:
- int binarySearch(type[] a,type key):使用二分法查询key元素值在a数组出现的索引;(不包括key则返回负数)(该方法要求数组中元素已经按升序排列)
- binarySearch(type[] a,int fromIndex,int tolndex,type key);
- type[] copyOf(type[] original,int newLength):将original数组复制成一个新数组,其中length是新数组的长度。若length大于orignal数组的长度,则后补充0;false;null;
- type[] copyOfRange(type[] original,int from,int to)
- boolean equals(type[] a,type[] a2)
- void fill(type[] a,type val):把a数组所有元素值都赋值为val;
- void fill(type[] a,int fromIndex,int toIndex,type val);
- void sort(type);
- void sort(type[]a,int fromIndex,int toIndex,type val);
- String toString(type[] a):将数组转换成一个字符串。多个数组元素使用逗号和空格隔开;
返回一个数组:
public String[] divide(double money) { long zheng=(long)money; //获得小数部分的前两位; int xiao=(int)Math.round((money-zheng)*100); return new String[]{zheng+"",String.valueOf(xiao)}; }
java支持形参可变的方法
public class parameterChange { public static void test(int a,String... name) { for(String name1:name) { System.out.print(name1+" "); } } public static void main(String[] args) { // TODO 自动生成的方法存根 test(33,"yhq","www","aaa","www"); } }
失败并不可怕