java 数据类型


一》数据类型

byte,short,char 不会自动转换 计算时要统一转换为int类型

byte  a1 = 1;

short a2 = 3;

short  a3 = a1 + a2;//false 报错

int  a3 = a1 + a2;//true

字符串和浮点数

char a1='a';

char a2 ='a'+1

system.out.println("100"+3+5);//1008

system.out.println(1+3+"100");//4100

system.out.println(a1);//a

system.out.println(a1+2);//99

system.out.println(a2);//b

数组的使用

先声明数组 公式:数据类型 数组名[]  或者   数据类型 [] 数组名

再创建数组 公式:数组名 = new 数据类型[大小]

例:int a[] ; //声明数组

       int a[] =new int[5];//创建数组

       第二种方式

        int  a[] ={1,2,3,5... }

一》数据类型,转换

自动类型转换规则:精度小的类型自动转换为精度大的数据类型

char->int->long->float->double

byte->short->int->long->float->double

强制类型转换--》公式:(需要转换成什么数据类型)原数据类型的变量 

                          (  强制转换类型会有数据的流失 )

例如

自动类型转换

        int a =10;

        float b = a+1.5f;

        double c = a+1.3;

强制类型转换

        double a=5.5;

        int b =(int) a;

String 类型转换为其他 的数据类型

例如:整型:123转为String 类型

Integer.parseInt("123");

公式为:类的包装类.parseInt("内容");

特例:字符串转为字符(得到字符串的第几个字符) 

str1.charAt(2);

其他类型转为String类型

String str1 = 1.1 + " ";

String str2  = 1 + " ";

String str3  =  true + " ";

一》运算符

逻辑运算符的使用

i++   : 先赋值 后加1

++i   : 先加1 后赋值

&:(与)有一个false 结果为false        |:(或)有一个true结果为true    

^:(异或)一个false 一个true才为true  否则为false

&&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false
& 逻辑与:不管第一个条件是否为 false,第二个条件都要判断

|| 短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true
| 逻辑或:不管第一个条件是否为 true,第二个条件都要判断
开发中, 我们使用的基本是使用短路与&&和 ||

int x =1;
int y =2;
if(x++ = 2 & ++y =3){
    x = 15;
}
System.out.println("x = "+x+"y ="+y); // x = 1 y = 3

int x =1;
int y =2;
if(x++ =2 && ++y =3){
    x =15
}
System.out.println("x = "+x+"y ="+y); // x = 1 y = 2

int x =1;
int y =2;
if(x++ =2 | ++y =3){
    x =15
}
System.out.println("x = "+x+"y ="+y); // x = 15 y = 3

int x =1;
int y =2;
if(x++ =2 || ++y =3){
    x =15
}
System.out.println("x = "+x+"y ="+y); // x = 15 y = 2

从控制台接收用户信息

//导入输入包

import java.util.Scanner

//myScanner 就是 Scanner 类的对象

Scanner myScanner = new Scanner(System.in);

//接收用户输入字符串

String name = myScanner.next();

//输出字符串

Systom.out.println("name="+name);

一》数组例题

将数组里面的元素翻转

第一种方法:直接翻转 取最后一个值和第一个值交换位置  

for( int i = 0; i < len / 2; i++) { //前后交换只需要交换个数的一半次
			temp = arr[len - 1 - i];//这里len-1为最后一个元素,再减i为倒数第(i+1)个元素
			arr[len - 1 - i] = arr[i]; 
			arr[i] = temp; 
		}

第二种方法:使用第一个数组,逆序赋值给第二个元素

        int[] arr = {11, 22, 33, 44, 55, 66}; 
		int[] arr2 = new int[arr.length]; 
		//逆序遍历 arr 
		for(int i = arr.length - 1, j = 0; i >= 0; i--, j++) { 
			arr2[j] = arr[i]; 
		}

 冒泡排序

第一次比较把数组中最大的元素放到数组最后,第二次比较把第二大的放在倒数第二个元素的位置,以此类推,形成一个从小到大排序的数组,如果需要由大到小的数组,改符号即可

for( int i = 0; i < arr.length - 1; i++) {//外层循环是 n 次 
		for( int j = 0; j < arr.length - 1 - i; j++) {
			//如果前面的数>后面的数,就交换 
			if(arr[j] > arr[j + 1]) { 
				temp = arr[j]; 
				arr[j] = arr[j+1]; 
				arr[j+1] = temp; 
			} 
		}

杨辉三角

    //定义一个二维数组
    int[][] yangHui = new int[12][]; 
    //遍历 yangHui 的每个元素 
		for(int i = 0; i < yangHui.length; i++) {
			//给每个一维数组(行) 开空间 (每一行的元素个数与行数相同)
			yangHui[i] = new int[i+1]; 

			//给每个一维数组(行) 赋值 
			for(int j = 0; j < yangHui[i].length; j++){ 

				//每一行的第一个元素和最后一个元素都是 1 
				if(j == 0 || j == yangHui[i].length - 1) { 
					yangHui[i][j] = 1; 

				} else {//中间的元素 推演出来的算式
					yangHui[i][j] = yangHui[i-1][j] + yangHui[i-1][j-1]; 
				}
			} 
		}

,

你可能感兴趣的:(java,开发语言)