day02(基础)

一、java数据类型

(1)8种基本数据类型

(2)引用数据类型 class 、array、interface

(3)数据类型得转换,java中short和byte会自动转换成int类型计算

package BaseData;

/**
*
*/

public class TestDemo1 {

public static void main(String[] args) {
byte num1=5;
short num2=6;
//编译器会报错
// short c=num1+num2;
int c=num1+num2;
System.out.println(c);

long d=10;
long f=c+d;

}
}



二、逻辑运算符,短路与和短路或得理解
package BaseData;

import org.junit.Test;

import javax.jws.soap.SOAPBinding;

/**
* 短路与和短路或的理解
*
*/


public class TestDemo2 {
public static void main(String[] args) {
boolean boo1=true;
boolean boo2=false;
testBool(boo1,boo2);

}
//测试短路与和短路或的方法
static void testBool(boolean boo1,boolean boo2){
//短路或,如果第一个表达式是true,那么就不会执行后面的表达式
if(boo1||boo2){
System.out.println("会执行这条语句");
}
//短路与
else if(boo2&&boo1){
System.out.println("不会执行这条语句");

}

}
}

三、分支和循环

if.....else练习

package BaseData;

import java.util.Scanner;

/**
* 测试if else练习
* Case 1: 猜数字
* 随机生成一个100以内的整数(Math.random()*100) target
* 程序接收输入的数字,如果小于target,打印“错,小了”
* 如果大于target,打印“错,大了”
* 如果输入正确,则打印”哈哈,恭喜你猜对了!!!”
*/

public class TestDemo3 {
public static void main(String[] args) {
int num=(int)Math.random()*100;
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个数:");
int num2=scanner.nextInt();
while (scanner.hasNext()){
if(num==num2){
System.out.println("哈哈,恭喜你猜对了");
break;
}else if(num>num2){
System.out.println(num+">"+num2+":猜错了,小了");
}else {
System.out.println(num+"<"+num2+":猜错了,大了");
}

}
}
}


switch case练习
package BaseData;

public class TestDemo4 {
public static void main(String[] args) {
Season a=Season.AUTUMN;
//switch中的表达式可以是int ,也可以字符串、字符
switch (a){
case SPRING:{
System.out.println("春天到了,花开了");
break;
}
case SUMMER:{
System.out.println("夏天到了,该去游泳了");
break;
}
case AUTUMN:{
System.out.println("秋天到了,落叶了");
break;

}
case WINTER:{
System.out.println("冬天到了,去滑雪把");
break;

}
//兜底,保证程序健壮
default:
System.out.println("超出枚举类型");

}

}

enum Season{
SPRING,SUMMER,AUTUMN,WINTER
}
}

for循环和while循环
package BaseData;

/**
* 测试for 循环和while循环
* 练习:求1到100内的偶数
*/

public class TestDemo5 {
public static void main(String[] args) {
int i=100;
System.out.println(tesFor(i));
System.out.println(testWhile(i));

}
static int tesFor(int num){
int sum=0;
for(int i=0;i<num;i++){
sum+=i;

}
return sum;
}
static int testWhile(int num){
int sum=0;
int i=1;
while (i<num){
sum+=i;
i++;
}
return sum;

}
}



四、数组

1、数组的基本使用

package cn.zxg.arrays;

/**
* 测试数组,数组的基本使用
*/

public class TestArrays {
public static void main(String[] args) {
//声明数组类型和长度
int[] arr01=new int[10];

for (int i=0;i<arr01.length;i++){
arr01[i]=i*10;
System.out.println(arr01[i]);

}
}
}

2、数组的三种初始化方式
package cn.zxg.arrays;

/**
* 测试数组的三种初始化方式
*/

public class Test02 {
public static void main(String[] args) {
//1、静态初始化
int []a={2,4,56};
User [] b={
new User(100,"张三"),
new User(101,"里斯"),
new User(102,"王五")
};
//2、默认初始化
int []c=new int[3];//默认给数组进行赋值,和成员变量赋值一样
//3、动态初始化
int [ ] d= new int[10];
for (int i=0;i<d.length;i++){
d[i]=i*10;
}

}
}
3、数组遍历
package cn.zxg.arrays;

/**
* 通过foreach读取数组中的元素
*/
public class Test03 {
public static void main(String[] args) {
int [] arr=new int[10];
//动态初始化数组
for(int i=0;i<arr.length;i++){
arr[i]=i*100;

}
String [] s={"aa","bb","cc"};
//使用foreach遍历数组
for (int m:arr) {
System.out.println(m);

}
for (String a:s
) {
System.out.println(a);
}
}
}

五、面向对象
对象在jvm内存变化过程
JVM内存分为栈、堆、方法区
栈的特点:
1、栈描述的是方法执行的内存模型。每个方法执行被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)
2、JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
3、栈属于私有的,不能实现线程间的共享
4、栈的存储特性是“先进后出,后进先出”
5、栈是由系统自动分配的,速度快。

堆特点:
1、堆用于存储创建好的对象和数组
2、jvm只有一个堆,被所有线程共享
3、堆是一个不连续的内存空间,分配灵魂,速度慢
方法区:
1、jvm只有一个方法区,被所有线程共享
2、方法区实际也是堆,只是用于存储类、常量相关信息
3、用来存放程序中永远是不变或唯一的内容(class对象,静态变量、字符串常量)





原文地址:https://www.cnblogs.com/zzzao/p/10964902.html