黑马程序员技术交流社区
标题: Java12期技术贴以及总结(上) [打印本页]
作者: 彼岸浮生梦 时间: 2018-4-3 00:41
标题: Java12期技术贴以及总结(上)
经历了4天预习班以及11天的基础班,已经初步的了解到Java的基本应用..以下是这些天的个人总结:
1.James Gosling与Partrick,Naughton和Mike Sheridan等人合作"绿色计划",后来发展一套语言叫"Oak",之后改名为Java.
2.Java主要有开源和跨平台的优点,跨平台代表着Java程序可以在任意操作系统上运行,一次编写到处运行,实现跨平台需要依赖Java的虚拟机JVM
3.JVM是JAVA的虚拟机,不同的平台都有自己的虚拟机,因此JAVA实现了跨平台
JRE,包括JAVA虚拟机和JAVA程序所需的核心库类.
JDK,提供给JAVA开发人员使用,包括了JAVA的开发工具和JRE.
4.著名案例,"HelloWorld"..
public class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
5.关于定义各类变量的代码:
public class VariableDemo {
publicstatic void main(String[] args) {
//定义byte类型的变量
byte b= 10;
System.out.println(10);
System.out.println(b);
//定义short类型的变量
shorts = 100;
System.out.println(s);
//定义int类型的变量
int i= 10000;
System.out.println(i);
//定义long类型的变量
long l= 1000000000000000L;
System.out.println(l);
//定义float类型的变量
floatf = 12.34F;
System.out.println(f);
//定义double类型的变量
doubled = 12.34;
System.out.println(d);
//定义char类型的变量
char c= 'a';
System.out.println(c);
//定义boolean类型的变量
booleanbb = false;
System.out.println(bb);
7.隐式数据类型转换:取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算
8.强制类型转换:例如 b = (byte)(a + b);
9.运算符:
算数运算符
整数相除,结果还是整数
注意事项:
* a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
* b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
* c:/获取的是除法操作的商,%获取的是除法操作的余数
* %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件
'a' 97
'A' 65
'0' 48
'A' + 10 ==> 65 + 10 = 75
字符串与任何数据做加法运算,都会产生一个新的字符串
"abc" + 10 + 20 ==> "abc10" + 20 ==> "abc1020"
10 + 20 + "abc" + 10 + 20 ==> 30 + "abc" + 10 + 20 ==> "30abc" + 10 + 20 ==> "30abc1020"
++ --
byte a = 10;
a += 20;
逻辑运算符
& : 有假则假
| : 有真则真
! : 事物的另一面
^ : 相同为false,不同为true
&& 和 & 的区别:
& 是左右两边都需要进行计算
&& 如果左边为false,右边不执行
|| & | 的区别:
| 是左右两边都需要进行计算
|| 如果左边为true,右边不执行
三元运算符(三目运算符)
关系表达式 ? 表达式1 : 表达式2
int a = 20;
int b = 30;
int result = a > b ? a : b;
boolean flag = (a == b ? true : false);
boolean flag = (a == b);
10.选择流程控制语句
顺序结构:是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的
if语句第一种格式:
if(关系表达式) {
语句体
}
if语句第二种格式:
if(关系表达式) {
语句体1;
}else {
语句体2;
}
if语句第三种格式:
if(关系表达式1) {
语句体1;
}else if (关系表达式2) {
语句体2;
}
…
else {
语句体n+1;
}
11.循环语句
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while((判断条件语句);
12.random: 导包 import java.util.Random;
创建对象 Random r = new Random();
获取随机数 int num = r.nextInt(10);
13.
数组是存储同一种数据类型多个元素的容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
格式格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
注意:这两种定义做完了,数组中是没有元素值的。
数组的初始化: 数据类型[] 数组名 = new 数据类型[数组长度];
public class ArrayDemo {
public static void main(String[] args) {
//数据类型[] 数组名 = new 数据类型[数组长度];
int[] arr = new int[3];
/*
* 左边:
* int:说明数组中的元素的数据类型是int类型
* []:说明这是一个数组
* arr:是数组的名称
* 右边:
* new:为数组分配内存空间
* int:说明数组中的元素的数据类型是int类型
* []:说明这是一个数组
* 3:数组的长度,其实就是数组中的元素个数
*/
14.方法的格式
修饰符 返回值类型 方法名(参数类型参数名1,参数类型 参数名2…) {
函数体;
return 返回值;
}
/*
修饰符 目前记住 public static
返回值类型 用于限定返回值的数据类型
方法名 一个名字,为了方便我们调用方法
参数类型 用于接收调用方法时传入的数据的类型
参数名 用于接收调用方法时传入的数据的变量
方法体 完成功能的代码
return 结束方法,把返回值带给调用者
*/
求和的方法调用:
package com.itheima_01;
/*
* 有明确返回值的方法的调用:
* A:单独调用,没有什么意义。
* B:输出调用,有意义,但是不够好,因为我可能需要对求和的结果进行进一步的操作
* C:赋值调用
*/
public class MethodDemo2 {
// 求和的方法
public static int sum(int a, int b) {
return a + b;
}
public static void main(String[] args) {
// 单独调用
// sum(10,20);
// 输出调用
// System.out.println(sum(10,20));
// 赋值调用
int s = sum(10, 20);
// s+=100;
System.out.println("s:"+s);
}
}
获取两数较大值:
package com.itheima_01;
import java.util.Scanner;
/*
* 需求:键盘录入两个数据,返回两个数中的较大值
*
* 两个明确:
* 返回值类型:int
* 参数列表:int a,int b
*/
public class MethodTest {
// 返回两个数中的较大值
public static int getMax(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入第一个数据:");
int x = sc.nextInt();
System.out.println("请输入第二个数据:");
int y = sc.nextInt();
//调用方法
int max = getMax(x,y);
System.out.println("max:"+max);
}
}
获取三个数的较大值
package com.itheima_01;
import java.util.Scanner;
/*
* 需求:键盘录入三个数据,返回三个数中的最大值
*
* 两个明确:
* 返回值类型:int
* 参数列表:int a,int b,int c
*/
public class MethodTest3 {
// 返回三个数中的最大值
public static int getMax(int a, int b, int c) {
if (a > b) {
if (a > c) {
return a;
} else {
return c;
}
} else {
if (b > c) {
return b;
} else {
return c;
}
}
}
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入第一个数据:");
int a = sc.nextInt();
System.out.println("请输入第二个数据:");
int b = sc.nextInt();
System.out.println("请输入第三个数据:");
int c = sc.nextInt();
//调用方法
int max = getMax(a,b,c);
System.out.println("max:"+max);
}
}
方法的重载之比较数据是否相等
package com.itheima_03;
/*
* 需求:比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,
* 并在main方法中进行测试
*/
public class MethodTest {
public static void main(String[] args) {
// 调用
System.out.println(compare(10, 20));
System.out.println("-------------");
System.out.println(compare((byte)10, (byte)20));
System.out.println("-------------");
System.out.println(compare((short)10, (short)20));
System.out.println("-------------");
//System.out.println(compare((long)10, (long)20));
System.out.println(compare(10L, 20L));
}
// 两个byte类型的
public static boolean compare(byte a, byte b) {
System.out.println("byte");
// 第一种写法
// boolean flag = a==b?true:false;
// return flag;
// 第二种写法
// boolean flag = a == b;
// return flag;
// 第三种写法
return a == b;
}
// 两个short类型的
public static boolean compare(short a, short b) {
System.out.println("short");
return a == b;
}
// 两个int类型的
public static boolean compare(int a, int b) {
System.out.println("int");
return a == b;
}
// 两个long类型的
public static boolean compare(long a, long b) {
System.out.println("long");
return a == b;
}
}
数组的遍历
package com.itheima_05;
/*
* 需求:把遍历数组改进为方法实现,并调用方法
*/
public class MethodTest {
public static void main(String[] args) {
// 定义数组
int[] arr = { 11, 22, 33, 44, 55 };
// 遍历
// for (int x = 0; x < arr.length; x++) {
// System.out.println(arr[x]);
// }
//用方法改进
//printArray(arr);
//这一次虽然可以,但是我觉得格式不好看,能不能打印成下面的格式呢?
//[元素1, 元素2, 元素3, ...]
printArray(arr);
}
public static void printArray(int[] arr) {
System.out.print("[");
for(int x=0; x<arr.length; x++){
if(x==arr.length-1){
System.out.println(arr[x]+"]");
}else {
System.out.print(arr[x]+", ");
}
}
}
/*
* 两个明确:
* 返回值类型:void
* 参数列表:int[] arr
*/
// public static void printArray(int[] arr) {
// for(int x=0; x<arr.length; x++){
// System.out.println(arr[x]);
// }
// }
}
作者: 小浙姐姐 时间: 2018-4-6 14:56
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |