java基础1

来源:互联网 发布:太阳能发电原理知乎 编辑:程序博客网 时间:2024/05/16 18:33
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:
    }
   
0 0
原创粉丝点击