一、概述
java基础部分与其它语言(C/C++等)一致,基础都包含的是数据类型、运算符、流程控制、变量与常量、函数、数组。
二、数据类型及基本数据类型转换
java中有8种基本数据类型,3种引用数据类型,其中默认的数据类型是:整数—int ,小数—double,数据类型如下图所示:![]()
|--自动类型转换自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。 byte b; int i=b; long l=b; float f=b; double d=b;
注意:short s1 = 1; s1 += 1; (1)这两句话都没错, e1+=e2 实际上是 e1=(T1)(e1+e2) (2)short sh = b;这里在赋值时,JVM 首先将 b 的值转换为 short 类型,然后再赋值给 sh 基本数据类型的强转次序如下:
![]()
|--强制类型转换 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。 int i=99 ; byte b=(byte)i; char c=(char)i;
三、数据类型的包装类
包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,大量使用这些包装类。Java共有六个包装类,分别是Boolean、 Character、 Integer、 Long、 Float和Double,从字面上我们就可以看出它们分别对应于 boolean、char、int、long、float和double。 在进行简单数据类型之间的转换(自动转换或强制转换)时,可以利用包装类进行中间过渡。
注:而String和Date本身就是类。所以也就不存在什么包装类的概念了。所有的包装类都方法都大致相同,以Integer类为例。
|--生成Integer类
|--构造方法
Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int值。
|--静态方法
static Integer valueOf(int i)
static Integer valueOf(String s) 不带系统属性值
static Integer getInteger(String nm) 带系统属性值
|--常用方法
|--进制转换:注意返回值是String,这些方法也是静态的
static String toBinaryString(int i) 二进制
static String toHexString(int i) 十六进制
static String toOctalString(int i) 十进制
|--字符串转int
static int parseInt(String s)
|--int 转字符串
static String toString(int i)
String toString()
|--int转其它数据类型
short shortValue() 转short
long longValue() 转long
byte byteValue() 转byte
|--比较
compareTo(Integer anotherInteger)
四、运算符
运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。其中运算符的优先级顺序是:
五、流程控制
主要有:判断结构、选择结构和循环结构。
5.1 判断结构 if_else
if(条件表达式)
{ 执行语句;}
else if (条件表达式)
{ 执行语句 ; }
else
{ 执行语句;}
5.2 选择结构 switch
switch(表达式) //表达式的值只可以是byte short int char { case 取值1: 执行语句; break;//注意每个case后都要有break case 取值2: 执行语句; break; ... default: //默认的值 执行语句; break; }
5.3 循环结构
包含三个结构:while do_while for,并用break、contunue控制循环; |--while
|--do_whilewhile(判断) { …… }
|--fordo { …………;//do something }while()
|--循环控制for(语句;语句;语句) { ……;//do something }
|--break语句:应用范围:选择结构和循环结构。其后可加标记,用于操作被标记的语句。如:break p;|--continue语句:应用于循环结构。continue语句是结束本次循环继续下次循环。其后可加标记,用于操作被标记的语句。如:continue p;
六、函数
函数就是定义在类中的具有特定功能的一段独立小程序,函数也称方法
|--函数的格式: 修饰符 返回值类型 函数名(参数类型 型参1,…………) { 执行语句; return 返回值; //如果返回值类型是void,return语句可以不写 } |--定义函数的步骤 定义函数要注意通用性和扩展性,尽量解决同一类问题(类的定义也是) 1.明确功能,明确运算结果类型(返回值类型); 2.明确需要参与运算的内容,即明确型参; |--函数的重载 在同一个类中,允许存在一个以上的同名函数,只要参数个数或者参数类型不同即可。注意两点: 1.只看参数列表,与返回值无关; 2.子类重载时,权限只能向上升级,如protect --> public
七、变量、常量
|--常量 定义:Java中固定不变的、表示不能改变的数值。 Java中常量的分类: (1)整数常量。所有整数。有三种表现形式: |--十进制:0-9,满10进1。 |--八进制:0-7,满8进1,用0开头表示。 |--十六进制:0-9,A-F,满16进1,用0x开头表示。 (2)小数常量。所有小数。 (3)布尔型常量。较为特有,只有两个数值。true false。 (4)字符常量。将一个数字字母或者符号用单引号( ' ' )标识。 (5)字符串常量。将一个或者多个字符用双引号(“”)标识。 (6)null常量。只有一个数值就是:null。 |--变量 概念:内存中的一个存储空间。有自己的名称(变量名)和类型(数据类型)。 作用:用来不断的存放同一类型的数据,并可以重复使用。 定义变量的格式:数据类型 变量名 =初始化值;
八、数组
数组是同一种类型数据的集合,数组是一个容器。数组自动从0开始编号。数组的父类是Object。可能把数组看一个类的对象,数组创建后存放在堆内存中,而变量指向了该对象的地址。如 int [] arr = { 3 , 5 , 7 ,8} arr在栈中,指向数组的地址; 8.1 数组的声明: 1.元素类型[] 数组名 = new 元素类型[数组的长度]; int [] arr = new int [5]; 2.元素类型[] 数组名 = new 元素类型[]{元素,元素,…………} int [] arr = new int [] { 3 , 5 , 1 , 7 }; int [] arr = { 3, 5 , 7 , 1} 8.2 数组的遍历 int [] arr = { 3, 5 , 7 , 1}; //方法一:for循环 for( int i =0 ; i < arr.length ; i++ ) { System.out.println(arr[i]); } //方法二:用Iterator 和 while完成,简写成高级for for( int a : arr) { System.out.println(a) } 8.3 数组的工具类java.util.Arrays 该数组中的所有方法都是static,没有构造方法,常用的方法如下: |-- static <T> List<T> asList(T... a) 返回一个受指定数组支持的固定大小的列表。 |-- static int binarySearch(double[] a, double key) 二分法查找 key,其它类型数组一样 |-- static byte[] copyOfRange(byte[] original, int from, int to) 将指定数组的指定范围复制到一个新数组。 |-- static boolean equals(byte[] a, byte[] a2) 如果两个指定的 byte 型数组彼此相等,则返回 true。 |-- static String toString(boolean[] a) 返回指定数组内容的字符串表示形式。 |-- static void sort(long[] a) 对指定的 long 型数组按数字升序进行排序。