java基础

1. 常量

  1. 字符串常量
  2. 整数常量
  3. 小数常量
  4. 字符常量:单个数字,单个字母,单个符号
  5. 布尔常量
  6. 空常量

2. 进制

  • 二进制:0/1组成,以0b开头,b大小写都可以,JDK7可以表示二进制
  • 八进制:0-7,0开头
  • 十进制:整数默认
  • 十六进制:0-F,0x开头
  • 进制转换:

3. 源码反码补码

3.1. 源码

就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
通过一个字节,也就是8个二进制位表示+7和-7
0(符号位) 0000111
1(符号位) 0000111

3.2. 补码

正数的补码与其原码相同;
负数的补码是在其反码的末位加1。

3.3. 反码

正数的反码与其原码相同;
负数的反码是对其原码逐位取反,但符号位除外。

4. 变量

4.1. 基本数据类型

4.1.1. 整数型

  • Byte 占一个字节 -128~127
  • Short 占两个字节 -215~215-1
  • Int 占四个字节 -231~231-1
  • long 占八个字节 -263~263-1

4.1.2. 浮点型

  • float 占四个字节 -3.403E38~3.403E38

4.1.3. 字符型

  • char 占两个字节 0~65535
  • java中char可以存放中文吗?
    可以 英文java中char采用的是unicode编码占两个字节,中文也是两个字节

4.1.4. 布尔型

  • Boolean boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小

4.1.5. 注意点

  • byte与byte,short,char 会提升为int
  • java有常量优化机制,等式中的常量会在编译时进行运算
  • 在混合运算时,(byte,short,char)不会相互转换,都会提升为int,其他提升一个等级;int--long-double
  • float比long大
    Long: 8个字节
    float:4个字节
    IEEE754
    4个字节是32个二进制位
    1位是符号位
    8位是指数位
    00000000 11111111
    0到255
    1到254
    -126到127
    23位是尾数位
    每个指数位减去127
    A:它们底层的存储结构不同。
    B:float表示的数据范围比long的范围要大
    long:2^63-1
    float:3.410^38 > 210^38 > 28^38 = 22338 = 2*2^114 > 2^63-1

4.2. 引用数据类型

4.2.1. 数组

  • 整数类型:byte,short,int,long——初始值0
  • 浮点型:float,double——初始值为0.0
  • 布尔型:boolean——初始值为false
  • 字符型:char——默认值为‘\0000’

5. 内存分配

  • 栈 存储局部变量
  • 堆 new出来的对象
  • 方法区 编译之后 的class文件进入内存
  • 本地方法区 与系统相关
  • 寄存器 给CPU使用

6. 运算符

6.1. 基本运算符

  • 取余
    对二取余可以最为判断条件
  • 自增减
    ++a 为先加再用
    a++ 为先用再加

6.2. 逻辑运算符

6.2.1. &&与&的区别

效果相同,但是&&左边为false,右边就不会执行了

6.2.2. ||与|的区别

效果相同,同上与短路效果

6.3. 位运算

  • 位与—— &
    有0则0
    -位或—— |

  • 位且—— ^

  • 位非—— ~

  • ^ 的特点
    一个数据对另一个数据异或两次,该数不变

    • 交换两个数据,不需要定义第三方变量
        public class NoTemp {
            public void one(int x, int y){
            x = x + y;
            y = x - y;
            x = x - y;
            System.out.println("x的值为:"+x+" "+"y的值为:"+y);
            }
            private void two(int x, int y) {
            x = x^y;
            y = x^y;
            x = x^y;
            System.out.println("x的值为:"+x+" "+"y的值为:"+y);
            }
            
            public static void main(String[] args){
                NoTemp noTemp = new NoTemp();
                int x = 100;
                int y = 1200;
                noTemp.one(x,y);
                noTemp.two(x,y);
            }
            }
    
  • <<左移
    左边高位丢弃,右边补齐0:左移即为就是乘以2的几次幂

  • >>右移
    无论最高位是0还是1,左边补齐0: 向右移动几位就是除以2的几次幂

6.4. 三元运算符

(关系表达式)? 表达式 1 : 表达式2
如果表达式成立则为1反之为2

三元运算符可以做的if都ok
if可以的三元运算符不一定可行
三元运算符 是一个运算符,不能输出

7. 流程控制

7.1. switch注意点

  1. case的值:可以提升到int 的都ok,java7开始支持String
  2. case的值不能相同,且不能为变量
  3. default可以省略,但是不建议省略|写在switch任意位置都有效果会影响程序在switch中执行的位置
  4. break省略会造成case穿透
  5. 建议switch固定值,建议if为区间
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 226,097评论 6 523
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 97,198评论 3 410
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,602评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,750评论 1 304
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,684评论 6 404
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,151评论 1 317
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,349评论 3 433
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,430评论 0 282
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,986评论 1 328
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,969评论 3 351
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,071评论 1 359
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,667评论 5 352
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,358评论 3 342
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,757评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,944评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,684评论 3 384
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,123评论 2 368

推荐阅读更多精彩内容

  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 1,602评论 4 12
  • Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和...
    Java小辰阅读 1,115评论 0 2
  • 常量的概述和使用 A:什么是常量在程序执行的过程中其值不可以发生改变 B:Java中常量的分类字面值常量自定义常量...
    野望君阅读 627评论 0 0
  • 02.01_Java语言基础(常量的概述和使用) A:什么是常量在程序执行的过程中其值不可以发生改变 B:Java...
    dreamkong阅读 225评论 0 3
  • 心里很痛,刚写了那么多笔记断电了,全没了, 1 总结一下算了,选中单元格在里面输入数字,日期或者序号等,将鼠标移动...
    小生活大happy阅读 141评论 0 0