1.变量与数据类型
变量是程序中使用到的变化的数据。一个变量由数据类型、变量名、变量值组成。
数据类型 ·变量名称 =变量值;
变量名:所有变量名只能使用数字、字符、_、$组成,但是数字不能作为开头。
数据类型:
基本数据类型
-
四个整型类型:byte(1字节) short(2)字节 int(4字节)long(8字节)
-
两个浮点类型:float(4字节) double(8字节)
-
一个字符类型:char(2字节)
-
一个布尔类型boolean(1bit)
-
java中常用的字面量常量类型:整数(int)、浮点数(double)、字符串常量。
引用数据类型
java, lang, String, 数组 , new出来的对象 , 枚举(JDK1.5新增)
2.运算符
算术运算符 :+ - * / % (++ --)
-
比较运算符:> < >= <= != ==
-
逻辑运算符:&, |, ! (&& ,||)
-
赋值运算符:= , += , -= ,*= ,/= ,%=
-
拼接运算符:+(任意变量与字符串+运算,都是将结果值拼接为一个新的字符串。)
-
-
位运算符:& | ^ ~ >> << >>>
-
优先级运算符:() .
-
- 思考:
- 1.&和&&(|和||)有什么异同?
(1)相同之处:在程序中,当所有表达式的判断结果为true时,则结果才为真,返回true,否则,只要有其中一 个表达式为假,结果都为false。
(2)不同之处:a.& 当前面的表达式为假的时候,程序还是会执行后面的表达式,再得出false结果。 b.&& 当前面的表达式为假时,程序会停止执行后面的表达式,结果是false。
2.用最有效率的方式计算 9*8?
用移位运算的方式运算:int a=9<<3;
3.请描述java中各运算符的优先级?
先算术运算,后移位运算,最后位运算。
请特别注意:逻辑运算最后结合。
3.数组array
java中的数组就是一组相同类型的数据集合,数组一般是引用类型的。数组是有序的。数组就是一个容器,目的是将数据存入保存,取出使用!数组最重要的两个属性:容量(长度)、下标(索引)。
1.数组的初始化方式不管那种初始化方式,数组初始化的时候一定确定的是明确的容量。
-
显示赋值
int[] arr = {1,3,4,5}
int[] arr = new int[]{1,3,5,6}
2.隐式赋值:
int arr[] = new int[5];
2.数组的使用
-
数组的遍历:使用循环语法遍历,N维数组一般使用N个循环嵌套来遍历。
-
数组元素求和,求平均值。
-
数组排序:选择排序,冒泡排序,快速排序,插入排序
-
数组查找:二分法查找( Arrays.binarySearch())
思考:
1.编程题:
1.创建一个数组,数组中有元素:3,6,18,3.14,5.12,100,88,11.22
2,求数组中的所有元素的和值,将和值打印在控制台上
3.查找数组中是否有66这个元素,将结果打印在控制台上
4.对数组进行排序,将结果从大到小输出在控制台上
代码如下:
public class ShuZu { public static void main(String[] args) { //创建数组 double[] x = {3, 6, 18, 3.14, 5.12, 100.88, 11.22}; int sum = 0; System.out.println("数组求和"); // for循环遍历,提取每一个元素累加在一起 for (int a = 0; a < x.length; a++) { sum += x[a]; } System.out.println(sum); //方法二 for (double d: x) { sum+=d; System.out.println(d); } //查询66是否存在数组 for (double b:x){ if (b==66) { System.out.println("66存在与数组x"); break; }else { System.out.println("66不存在与数组x"); } } //高效查找,先排序,后用二分法 Arrays.sort(x);//快速排序,默认小到大排序 int index = Arrays.binarySearch(x, 66); System.out.println(index < 0 ? "存在" : "不存在"); //降序输出排序后的数组 for (int k = x.length - 1; k >= 0; k--) { System.out.println(x[k]); } } }
4.流程控制语句
-
顺序结构
-
判断语句: .if ...else if ...else if ... else
不管判断代码块有几个,最终最多只有一个代码块被执行
但if语句在定义条件时应遵循以下原则:
(1)各个条件不应该冲突
(2)越精确的条件位置越靠前
-
选择语句
switch... case ...break; case...break; .....default ....break;
switch语句块在判断时,从上到下依次判断每一个case是否匹配,只要有一个匹配了 ,那么就执行他对应的语句块。只要有某一个case匹配了,后续的所有case块就不做判断了。
switch语句用作判断的变量类型只能是:char、byte、short、int、String(1.7)、Enum(1.5)
switch语句使用时应遵循以下原则:
-
每一个case块结束后都需要加break关键字以结束Switch语句
-
case块的顺序没有影响
4.循环语句
while循环:先判断循环条件,满足条件才能执行循环体,while循环 更适用于循环次数不确定的场景。do...while 循环:先执行一次循环体,再判断循环条件
-
for循环:更适用于循环次数固定的场景
-
foreach循环(增强for循环) :他是专用于遍历(迭代) 数组、集合容 ,器的循环。
思考:
1、Java中有哪些循环,它们之间有什么区别?
for循环,while循环,do....while循环
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断) for循环和while的区别 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
———————————————— 版权声明:本文为CSDN博主「2218549749」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:java中三种循环的区别_2218549749的博客-CSDN博客
2.使用流程控制语句打印九九乘法表。
代码如下:
package com.zpark; public class jiujiu { public static void main(String[] args) { for (int j = 1; j <= 9; j++) { for (int i = 1; i <= j; i++) {//初始值要为1,要等于9 System.out.print(i+"*"+j+"="+(i*j)+"\t"); } System.out.println(); } } }
5.方法
方法(函数、method)
方法是定义在类中的一个代码块,它通常能够完成特定的功能。
方法的组成:
修饰符 返回值类型 方法名(参数类型 形参名称, ...,参数列表 形参名称){
完成方法的具体业务代码集合
}
方法定义规则:
-
方法的返回值类型不能省略,如果一个方法有返回值(方法执行完毕后返回一个执行结果),那么返回值类型必须和返回的数据类型一致。 如果一个方法没有返回值(方法执行完毕运行流程不会返回任何内容),必须用void来补充语法。
-
方法名称不能省略,方法名称需要做到见名知义。
-
方法的参数列表必须存在,但是可以有0-- N个参数。JDK 1.7后引入了可变参数列表,但是可变参数必须放在参数最后。
-
方法体中放的是完成功能所需的业务代码集合。实际开发时,千万不要写一个打印语句代替。