一:数据类型
数据类型分为:基本数据类型和引用数据类型
引用数据类型是:类(class),接口(interface),数组
基本数据类型是:布尔型(boolean),字符型(char)和数值型
数值型分为整数类型(byte,short,int,long)
浮点类型(float,double)
八大基本数据类型:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(1字节)、boolean(1字节)
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
二:运算符号:
1)、算术运算符。
+ ,-, *, /, % %:取余数,通过%10可以得到个位数
+:连接符。
++,-- 自增、自减。
2)、赋值运算符。
= ,+=, -=, *=, /= ,%=
3)、比较运算符。
特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
4)、逻辑运算符。
& , | , ^ , ! , && , ||
逻辑运算符除了 ! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true
^:异或:和或有点不一样。
两边结果一样,就为false。
两边结果不一样,就为true.
& 和 &&区别: & :无论左边结果是什么,右边都参与运算。
&&(与短路):如果左边为false,那么右边不参数与运算。
| 和|| 区别:|:无论左边结果是什么,右边都参与运算。 ||(或短路):如果左边为true,那么右边不参与运算。
5)、位运算符:用于操作二进制位的运算符。
<< >> >>>(无符号右移)
2>>3=2/2^3=2/8=0
2<<3=2*2^3=2*8=16
>>和>>>的区别:
>>:最高位补什么由原有数据的最高位值决定
如果是0则补0,如果是1则补1
>>>:无论最高位是什么右移后用0补
三:语句
If语句:实现条件分支结构
If else语句:判断条件是否成立来执行的
switch语句:对整形表达式的值进行计算,不同取值有不同的程序段
while语句:判断条件是否成立来循环
do while语句:先执行一次循环体在判断表达式
for语句:可以控制循环次数
当判断固定个数的值的时候,可以使用if,也可以使用switch。建议使用switch,效率相对较高。
while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。
continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
四:数组
一维数组:用于存储同一类型数据的一个容器。
好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。
如何在java中表现一个数组呢?三种表现形式。
1)、数据类型[] 数组名 = new 数据类型[元素的个数];
2)、数据类型[] 数组名 = {元素1,元素2...};
3)、数据类型[] 数组名 = new 数据类型[]{元素1,元素2...};
示例:遍历并打印数组元素
<span style="font-size:14px;">package com.itheima;
public class ArrDemo {
public static void main(String[] args)
{
int[] arr = new int[]{1,3,6,7,8,95,4,6};
for(int i=0;i<arr.length;i++)
{
System.out.println("arr["+i+"]"+"="+arr[i]);
}
}
}</span>
选择排序:
思路:拿第一个元素依次与其他元素比较,如果大于其他元素则互换,经过第一轮比较后第一个元素为最小值,然后再拿第二个元素比较,以此类推
示例:
package com.itheima;
public class ArrSelect {
public static void main(String[] args)
{
int[] arr = {1,5,4,9,8,7,66,1,2,345,6};//定义一个数组
for(int i=0;i<arr.length;i++)//
{
for(int x=i+1;x<arr.length;x++)
{
if(arr[i]>arr[x])//符合条件就交换内容
{
int num = arr[i];
arr[i] = arr[x];
arr[x] = num;
}
}
}
for(int i : arr)
{
System.out.println(i);
}
}
}
冒牌排序:
数组从第一个元素到倒数第二个元素依次与其右边的元素进行比较,如果左边的元素大于右边的元素,那么两个元素就互换,则最大的元素到了最右边
以此类推当只有第一和第二个元素相互比较时结束
示例:
package com.itheima;
public class ArrDemo {
public static void main(String[] args)
{
int[] arr = {1,5,4,9,8,7,66,1,2,345,6};<span style="font-family: Arial, Helvetica, sans-serif;">//定义一个数组</span>
for(int i=0;i<arr.length-1;i++)
{
for(int x=0;x<arr.length-1-i;x++)
{
if(arr[x]>arr[x+1])<span style="font-family: Arial, Helvetica, sans-serif;">//符合条件就交换内容</span>
{
int num = arr[x];
arr[x] = arr[x+1];
arr[x+1] = num;
}
}
}
for(int i : arr)
{
System.out.println(i);
}
}
}
二维数组:数组中的数组
表现形式:
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];