您的位置:首页 > 编程语言 > Java开发

java基础1

2016-06-01 22:55 351 查看
jdk jre jvm 之间的关系:

    jdk 包含 jre

    jre 包含 jvm

补充:jdk 包含很多组件:jar  jdva javadoc;开发java程序使用例如编译java文件生成帮助文档等

      jre jar 跑起来需要的环境,提供java程序运行时的环境;例如多态

      jvm java虚拟机操作系统上层环境,是一种规范实现,jvm 就相当于屏蔽了底层操作系统的差异,实现了跨平台。

1.关键字(java赋予特殊含义的单词)

2.标识符:自定义的类名方法名,变量等26个字母大小写,数字0-9以及_$;但是数字不能开头,且不能使用关键字,严格区分大小写(main不是关键字,但是确实被虚拟机识别的名称比较特殊)

包名:多单词组成都是小写xxxyyyzzz

类名(接口名):均首字母大写XxxYyyZzz

变量和函数名:驼峰标识xxxYyyyZzz

常量:所有字母大写下划线间隔 XXX_YYY_ZZZ

3.注释(单行,多行,以及java特有的注释/** */)

4.常量和变量:
常量:固定不变的数值
1.整数常量:(1)十进制0-9(2)八进制0-7逢八进一0零开头(3)十六进制0-F(0123456789ABCDEF)0X零埃克斯
2.浮点型常量
3.布尔型常量:true false
4.字符常量:加上'' 标识为字符常量(字母数字常量),单引号只能封装一个字符
5.字符串常量"XXXX"
6.null常量,只有一个数值就是null
变量:不确定的内存中存储空间可以被重用,当数据不确定的时候使用

5.运算符

6.语句

7.函数

8.数组

基本数据类型:

byte 2字节 表示2的八次方表示256个数,-128 —— 127 因为java有符号0也是正数

Integer.toBinayString();转2进制

Integer.toHexString(); 转16进制

Integer.toOctalString(); 转8进制

不用浮点数比较

    float f = 0.1f;

    double d = 10 / 100;

    System.out.println(f - d == 0); //false;

    

    注意使用BigDecimal

char 类型 \转义字符

\t制表符

\"双引号

\\斜杠

\单个无效

boolean

if(b) {// ture}

if(!b) { //false}

        

类型转换

    类型小的(范围例如 long --float)自动转换为容量大的

    类型大的转换为类型小的注意继承,父类引用指向子类对象;基本类型直接强转即可

    注意: 可以以内存大小理解,范围大的可以强转为类型小的,因为类型小的内存分配小,大的类型容量完全足够,

    然而小的内存不足以强制转换为大的内存类型如:Father f = new Father(); Child c = new Child();

    c = (Child)f; 错误 可以理解为 父类1内存,子类0.5内存,但是new Child() 1.5内存,包含了一个父类实例化,

    然后父类的引用大小为1内存,那么强制转换为1.5内存是内存不够实例化的。

    

long l = 2000000000*2 编译及运行不错,但是int * int 还是int但是超出了int 范围,付给了long 所以是负数。

long l = 2000000000L*2*2; 与 long l = 2000000000*2*2L 不同, 后者已经溢出再×2

System.out.println(l);

类型转换:

    小的类型总是像大的转换:

byte b = 2; // 2常量(固定的值),在byte范围内。自动转换处理了

b=b+2;// 1字节提升到4字节,再付给1字节就挂掉 //类型自动提升但未作强制类型转换处理

b+=2; //自动完成了强制转换

    强制转换:

    类型 变量 = (类型)(变量)

    b = (btye)(b + 2);

    但注意 b= (byte)b+2; 是强制转换的b

    eg. float - int 去小数

(char)4 对应 ascii表字符

System.out.println(-12%5);    -2

System.out.println(12%-5);    2

System.out.println(-12%-5);    -2

结论只看被模数(只取决于左边数字的符号)

    

a++   --- a= a+1;

b = a++;  ==== b = a; a = a+1;

b = ++a;  ==== a = a+1; b = a;

转义字符:通过\转换一个字母后边的含义

\r    回车键

\n    换行符

\t    制表符 相当于tab

\b    退格键相当于backspace

Linux 中 换行一个字符\n

Windows中回车符\r\n

<< 相当于 *2 次幂

>> 相当于 /2 次幂 最高位补什么由原有最高位值而定,若为0 则 0 补,若为1 则1补

>>> 无符号右移 0 补空位

一个数异或一个数两次还是原来的那个数^ System.out.println(3 ^ -2 ^ -2);

    int i = 2;

    int j = 3;

    // i = i + j;// 2 + 3 = 5

    // j = i - j;// 2

    // i = i - j;

    System.out.println(i);

    System.out.println(j);

    i = i ^ j;

    j = i ^ j; // i ^ j ^ j 一个数异或一个数两次还是那个

    i = i ^ j ;//  (i ^ j) ^ (i ^ j ^ j); 此时j就是i 一个数异或一个数两次还是原来的书

    if

    if else

    if else if  else 判断满足一个if 则不会继续 因为是一个完整的体系

    每个格式都是一个完整的体系

    

    switch注意:1.byte short int char String enum

                2.case default 没有顺序关系,先执行第一个case,当没有匹配case则执行default

                3.switch 结束分两种情况,1遇到break2程序走完

                4.程序无对应case 或 default 无break 则程序将继续向下运行(不判断case)可运行的语句直到程序走完

    switch () {

    case:

        break;//跳出switch

    case:

    case:

    case:

        break;

    default:

    }

   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: