博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础语法
阅读量:6583 次
发布时间:2019-06-24

本文共 3672 字,大约阅读时间需要 12 分钟。

内存区分配:

1. code segment:存放代码

2. data segment: 静态变量

3. stack: 局部变量

4. heap: new出来的东西

8种基本数据类型:

布尔型: boolean

字符型: char:1 字节

整数型:

byte:1字节   -127-128

short:2字节  -2 15次方--2 15次方-1

int:4字节  

long:8字节

浮点类型:float (4字节,  10的38次方), double(8字节, 10的300次方)

 

 

引用数据类型: 类,接口, 数组

double放到float变量里不行, long 放到int里不会出错

 

数据类型转换:

1. boolean类型不能转换成其他类型

2. 整形int, 字符型char, 浮点型float数据可以相互转换

3. 容量小的类型自动转换为容量大的类型:容量指的是代表的数字的多少, 大小排序为: 

    byte,short,char-->int-->long-->float-->double(byte,short,char运算时自动转换成int,int+long=long...)

    byte, short, char不能互相转换,他们三者在计算时首先自动转换为int类型

4. 容量大的转换为容量小的数据类型要加上强制转换符, 但会造成精度降低或者溢出.

5. 多种类型的数据混合计算时, 系统自动将所有的数据转换成容量最大的那种数据类型, 然后进行计算.

6. 实数常量默认为double, 整形常量默认为int

7. double变量不能强制转换为float, 因为浮点型存的方式不一样

8. float类型要标明f

byte=1 ;  //可以, 只要别超过127byte b3=b1+b2; //不可以, 要强制转换(byte),改成下面byte b3=(byte)b1+b2; //如果超过了127, 会自动砍掉前面的字节float f1=1.23f; //必须加ffloat f2=3.2f;float f3=f1+f2; //不可以, 要强制转换, 因为会变成double

  

public class TestConvert {    public static void main(String arg[]) {        int i1 = 123;         int i2 = 456;        double d1 = (i1+i2)*1.2;//系统将转换为double型运算        float f1 = (float)((i1+i2)*1.2);//需要加强制转换符        byte b1 = 67;         byte b2 = 89;        byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需                                //要强制转换符        System.out.println(b3);        double d2 = 1e200;        float f2 = (float)d2;//会产生溢出        System.out.println(f2);        float f3 = 1.23f;//必须加f        long l1 = 123;        long l2 = 30000000000L;//必须加l        float f = l1+l2+f3;//系统将转换为float型计算        long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)    }}
public class TestConvert2 {	public static void main(String[] args) {       int i=1,j=12;    float f1=(float)0.1;  //0.1f    float f2=123;    long l1 = 12345678,l2=8888888888L;    double d1 = 2e20,d2=124;    byte b1 = 1,b2 = 2,b3 = 127;    j = j+10;    i = i/10;    i = (int)(i*0.1);    char c1='a',c2=125;    byte b = (byte)(b1-b2);    char c = (char)(c1+c2-1);    float f3 = f1+f2;    float f4 = (float)(f1+f2*0.1);    double d = d1*i+j;    float f = (float)(d1*5+d2);    }}

  

  

char类型相加自动转换int,需要强制转换回来:

public class Test {	public static void main(String[] args){		char c1='c';		char c2=1;		char c=(char)(c1+c2);		System.out.println("c="+c);		//System.out.println("c2="+c2);	}	}

 

阶乘相加的程序:

public class Test{	public static void main(String[] args){ 		long result = 0;  		long f = 1;  		for(int i=1;i<=10;i++){  			f=f*i;  			result=result+f;  		}  		System.out.println(result);	}}

  

1+3+5+...+99:

public class Test {	public static void main(String[] args){		int sum = 0;		for(int i=1; i<=99;i=i+2){			sum=sum+i;		}		System.out.println(sum);	}	}

  

输出0~9:

public class TestWhile{	public static void main(String args[]){		int i=0;		while(i<10){			System.out.println(i);			i++;		}			}}

 while break, continue:

public class Test{	public static void main(String args[]){		int stop=4;		for(int i=1;i<10;i++){			if(i==stop) break;			System.out.println(i);		}		}}

1-100被3整除的前5位:

public class Test{	public static void main(String args[]){		int num=0;		for(int i=1;i<=100;i++){			if(i%3==0){				System.out.println(i);				num++;			}			if(num==5) break;		}	}}

  

101-200之间的质数:只能被自身和1整除的数:

public class Test{	public static void main(String args[]){		for(int i=101;i<200;i+=2){			boolean f=true;			for(int j=2;j

 

switch语句: case可以合并, 小心case穿透, 要使用break, switch里面的变成只能检测int型, 所以可以使用可以转换为int的 char,byte,short类型

public class Test{	public static void main(String args[]){	int i=8;		switch(i){			case(2):			case(3):			case(5):			case(8):				System.out.println("AAAA");				break;			case(9):				System.out.println("bbbb");				break;			default:				System.out.println("bbbb");					}			}}

  

 

 

 

 

转载于:https://www.cnblogs.com/wujixing/p/5211057.html

你可能感兴趣的文章
南阳oj 题目6 喷水装置(一)
查看>>
运筹学上机实验 - 单纯形方法的两阶段法
查看>>
文件状态是否变化
查看>>
MongoDB的副本集Replica Set
查看>>
Maven项目中的配置文件找不到以及打包问题
查看>>
面向对象
查看>>
HDU 1058 Humble Numbers
查看>>
NYOJ The Triangle
查看>>
wps10.1中将txt转为excel
查看>>
解决执行脚本报syntax error: unexpected end of file或syntax error near unexpected token `fi'错误的问题...
查看>>
[BZOJ3312][USACO]不找零(状压DP)
查看>>
gtp转换mbr
查看>>
django rest framework
查看>>
poj1985 求树的直径
查看>>
Python PyPI中国镜像
查看>>
centos 设置静态IP
查看>>
[Angularjs]系列——学习与实践
查看>>
js -- canvas img 封装
查看>>
转 我们工作的动力是什么 工作最终是为了什么?
查看>>
测试一个网站的最大并发量并发数并发用户
查看>>