1.java数据类型
1.1
在java中,数据类型可以分为两类:
- 基本数据类型(原始数据类型):int,short,long,double(双精度类型,一般是小数),float,boolean(只有true,和false),char(字符串),byte
- 引用数据类型:数组,类的对象,接口对象
int的默认类型是0,而它的包装类integer默认类型是0
package com.wanczy.javaBase; public class JavaBaseDmeo02 { static int j = 100; static int i ; public static void main(String[] args) { System.out.println(i*j); } }
1.1变量的作用域
变量的作用域:声明的变量在程序的某个位置是否可以使用的问题成员变量(全局变量):声明在方法外面,类里面所有方法都可以访问的变量
局部变量:声明在方法里面,只有特定的代码才可以访问的变量
1.2数据类型的转换
package com.wanczy.javaBase; public class JavaDemo03 { public static void main(String[] args) { int x = 100; double d = 10.00; double dx = x;//将整型转换成了double型 int xd =(int) d;//将double型转换成整型() } }
int转成double没有问题,可是当double转成int时程序会报错。所以我们总结了以下两种情况:
- 向上转型:范围小的转换成范围大的,自动类型转换
- 向下转型:范围大的转换成范围小的,需强制类型转换
1.3运算符
在开发中使用最多的就是数学关系运算符,关系运算符,逻辑运算符,赋值运算符。
- 数学运算符(+,-,*,/,%)
- 关系运算符(==,<=,>=,<,>,!=)
- 逻辑预算符的值是boolean(&&,&,|,||,!)
&&表示前后表达式的值都为true的话,整个表达式的值就为true。如果前后有一个表达式有一个为false话,整个表达式的值为false,&&和&的区别,如果&& 前面的表达式为false的话,就不会去判断后面的表达式,而&如果前面一个表达式为false,仍然会判断后面的表达式。
||表示的是前后表达式如果有一个为true,整个表达式的值为true。||和|的区别,如果||的前面一个表达式为true的话后面的就不会去判断,|仍然会去判断后面的表达式,所以我们在正常开发中,一般使用&&和||执行效率高。
- 赋值运算符(==,+=,-=,!=,++,--,/=,*=)
package com.wanczy.javaBase; public class JavaDemo05 { public static void main(String[] args) { int x = 10; int y = 10; System.out.println(x++); System.out.println(++y); } }
结果式x:10,y:11(原因相信大家都知道)
- 三目运算符(x>y?y:z)如果x>y成立话,表达式值为y,如果x>y不成立的话,表达式的值为z
package com.wanczy.javaBase; public class JavaDemo05 { public static void main(String[] args) { int x = 11; int y = 10; int z = x<y?x:y; System.out.println(z); } }
1.4控制流语句
1.4.1分支语句
- if...else
- if...else if.....else
- swirch...case
1.5循环语句
在开发中循环是一个重点,只要开发程序,必须使用循环。循环主要有四部分组成:
- 循环条件的初始化部分
- 循环条件部分
- 循环体部分
- 循环部分
在开发中循环有三种语法格式
- for循环(增强型for循环)
- while
- do...while循环
for循环在明确循环次数的情况下一般使用for循环
for(表达式1;表达式2;表达式3){
语句;
}
不过一定要注意,一定要有循环条件注意死循环。
终止循环有两种方法,一种是break,一种是continue,break是终止循环,continue是终止本次循环
package com.wanczy.javaBase; public class JavaDemo11 { public static void main(String[] args) { for(int i = 1;i <= 100;i++){ if(i>50){ break;//终止循环 } if(i%2 != 0){ continue;//终止本次循环,继续下一次循环 } System.out.print(i +" "); } } }
非偶数时终止本次循环。
while
While(表达式){
语句;
}
在不明确循环次数的情况下,使用while循环
do while 循环
do{
语句;
}while(表达式)
while循环和 do while 的区别是,do while 不管条件如何都会循环一次
1.6数组
数组是开发中用的使用较多的数据类型,是引用数据类型。数组指的是存储一组相同数据类型的数据的存储单元,数组的定义:
- 数据类型 [] 数组名
- 数据类型[] 数组名
- 数据类型 数组名[]
package com.wanczy.javaBase; public class JavaDemo16 { public static void main(String[] args) { int [] x ; int[] y; int z[]; } }
对于数组来说,在定义数组的时候,可以初始化数组的内容,也可以不初始化数组的内容
- 静态初始化:在定义数组的同时,给数组开辟空间,并且赋值
- 动态初始化:在定义数组的时候,开辟空间,但不赋值
package com.wanczy.javaBase; public class JavaDemo16 { public static void main(String[] args) { int [] x = new int[5];//动态初始化,没有给数组赋值,但是开辟了5个空间 int[] y = new int[]{1,2,3,4,5};//静态初始化,开辟了5个空间,并且给每个空间都赋值 int[] z = {1,2,3,4,5};//静态初始化,开辟了5个空间,并且给每个空间都赋值 } }
数组的引用传递,指的就是传递(公用)堆内存空间。·
数组的排序:在Java中,有提供专门用于数组排序的方法:Arrays.sort(i);
打印一个菱形
package com.test.demo; public class test03 { //打印一个菱形 public static void main(String[] args) { for (int i = 1; i <=5; i++) { for (int j = 0; j < 5-i; j++) { System.out.print("a"); } for (int j = 0; j < 2*i-1; j++) { System.out.print("*"); } System.out.println(); } for (int i = 1; i <= 4; i++) { for (int j = 0; j < i; j++) { System.out.print("a"); } for (int j = 1 ; j <= 9-2*i; j++) { System.out.print("*"); } System.out.println(); } } }
九九乘法表
for (int i = 1; i < 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j+"*"+i+"="+i*j+"? "); } System.out.println(); }
总结,java基础主要是要掌握自动类型转换和强制类型转换,理解数组的引用传递,数组的排序和查找,在明确知道循环次数的前提下,一般使用for循环,会使用多维数组,数组的复制。