1 数据类型

 

1.1 整型

类型 存储需求 取值范围
int 4字节 -21 4748 3648 – 21 4748 3647 232
short 2字节 -32768-32767 216
long 8字节 -9223372036854775808 – 9223372036854775807 264
byte 1字节 -128-127 28
 

1.2 浮点类型

类型 存储需求 取值范围
float 4字节 大约±3.402 823 47E + 38F(有效位数6-7位)
double 8字节 大约±1.797 693 134 862 315 70E + 308(有效位数15位)
 

1.3 char类型

char类型用于表示单个字符。
 

1.4 boolean类型

true false
 

2 常量

用final修饰
多次使用 public static final
 

3 运算符

3.1 位运算符

3.1.1 & 与运算

  相同位的两个数字都为1,则为1;若有一个不为1,则为0。
       00101&11100 = 00100
  判断奇偶性
       (n & 1) == 1;
 

3.1.2 |或

  相同位只要一个为1即为1。
  00101 | 11100 = 11101

3.1.3 ^异或

       相同位不同则为1,相同则为0。
       00101 ^11100 = 11001
  应用:
  不用临时变量交换两个数(面试常考)
  a ^= b; 
  b ^= a; 
  a ^= b;
  a = 00101 b = 11100
  a = a^b = 00101 ^ 11100 = 11001
  b = b^a = 11100 ^ 11001 = 00101
  a = a^b = 11001 ^ 00101 = 11100
 

3.1.4 ~非

           运算的定义是把内存中的0和1全部取反
 

3.1.5 左移  <<

       a << b就表示把a转为二进制后左移b位(在后面添b个0)
       例如100的二进制为1100100,而110010000转成十进制是400,
那么100 << 2 = 400。
       a << 1 表示乘以2
       a << m 表示a乘以2的m次方
       2的n次方 2 << (n-1)
 

3.1.6 带符号右移 >>

       a >> b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。
       a >> 1 表示除以2
  a >> m 表示a除以2的m次方
  取绝对值:(n ^ (n >> 31)) - (n >> 31); 
  取两个数最大值:b & ((a-b) >> 31) | a & (~(a-b) >> 31); 
  取两个数最小值:a & ((a-b) >> 31) | b & (~(a-b) >> 31);  
  判断符号是否相同:(x ^ y) >= 0
  判断一个数是不是2的幂:n > 0 ? (n & (n - 1)) == 0 : false;  
  求两个整数的平均值:(x + y) >> 1;   

3.1.7 无符号右移 >>>

       用0填充高位
 
应用:
  计算n+1 :-~n  
  计算n-1:~-n  
  取相反数:~n + 1;  
  另一种写法: (n ^ -1) + 1;  
  if(x == a) x = b; if(x == b) x = a;
  x = a ^ b ^ x;  
  sign函数,参数为n,当n>0时候返回1,n<0时返回-1,n=0时返回return !!n - (((unsigned)n >> 31) << 1);   
 

3.2 数学函数

  平方根 Math.sqrt(x)
  X的a次幂Math.pow(x,a)
  三角函数
    Math.sin
    Math.cos
    Math.tan
    Math.atan
    Math.atan2
  指数函数以及反函数
    Math.exp
    Math.log
    Math.log10
   表示π和e常量近似值
    Math.PI
    Math.E

3.3 数值类型之间的转换

  

  6个实心箭头无信息丢失,3个虚箭头,表示可能有精度损失
 
 

 3.4 运算符级别

 

Java基础语法<一> 数据类型&运算符的更多相关文章

  1. java基础语法-char数据类型

    1.java中的char描述了UTF-16中的一个代码单元,因此对于基本的多语言层面可以随意的用char表示 ;//int值只能在0到65535即0000到FFFF 对于其他16个代码级别(两个代码单 ...

  2. JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)

    Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...

  3. Java基础语法(3)-运算符

    title: Java基础语法(3)-运算符 blog: CSDN data: Java学习路线及视频 1.算术运算符 算术运算符的注意问题 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1. ...

  4. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  5. JavaSE入门学习6:Java基础语法之运算符和语句(上)

    继续接着上篇:JavaSE入门学习5:Java基础语法(一)来看Java的基础语法. 五运算符 运算符是一种"功能"符号,用以通知Java进行相关的运算.比方.我们须要将变量age ...

  6. Java基础语法和基本数据类型

    Java基础语法 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 对象:对象是类的一个实例,有状态(属性)和行为(方法). 类:类是一个模板,他描述一类对象的行为 ...

  7. 068 01 Android 零基础入门 01 Java基础语法 08 Java方法 06 参数传递问题——基本数据类型传值

    068 01 Android 零基础入门 01 Java基础语法 08 Java方法 06 参数传递问题--基本数据类型传值 本文知识点:参数传递问题--基本数据类型传值 说明:因为时间紧张,本人写博 ...

  8. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  9. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

随机推荐

  1. javascript基础-闭包

    原理 函数里包含函数,即闭包. 包含函数的结果是,子函数会挟持父函数的活动对象.子函数在访问一个变量时,先读自身的活动对象,是否包含此变量,没有从父函数里找,还没有,去祖函数,层层回溯,直到windo ...

  2. Jenkins修改管理员密码

    前言:Jenkins修改管理员密码,我看了网上所有的教程,竟然全都是拿着一串已经加密好的111111的密文去替代config.xml文件里面的密码,然后大家的密码都是111111!我觉得这种做法实在太 ...

  3. 作为前端,我为什么选择 Angular 2?

    转自:https://sanwen8.cn/p/2226GkX.html 没有选择是痛苦的,有太多的选择却更加痛苦.而后者正是目前前端领域的真实写照.新的框架层出不穷:它难吗?它写得快吗?可维护性怎样 ...

  4. Nmap原理-01选项介绍

    Nmap原理-01选项介绍 1.Nmap原理图 Nmap包含四项基本功能:主机发现/端口扫描/版本探测/操作系统探测.这四项功能之间存在大致的依赖关系,比如图片中的先后关系,除此之外,Nmap还提供规 ...

  5. 用JQuery写的滚动条,可以改变样式哦!

    很早之前在做项目的时候要用到自定义的滚动条,可是现在的CSS2只能改改颜色什么的,对于改变形状或者更高级的用法根本不可能实现,没办法只能自己写一个了.(好像CSS3可以该形状,不过没研究过有兴趣的童鞋 ...

  6. Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素

    最近..... 废话不多说上效果图 用的是UGUI 我先说思路 通过判断元素的位置信息来改变Hierarchy的顺序 实现无限滚动 改变位置的同时也要不断的调整Content的位置防止乱跳 元素锁定就 ...

  7. 懵懂oracle之存储过程2

    上篇<懵懂oracle之存储过程>已经给大家介绍了很多关于开发存储过程相关的基础知识,笔者尽最大的努力总结了所有接触到的关于存储过程的知识,分享给大家和大家一起学习进步.本篇文章既是完成上 ...

  8. EntityFramework Core映射关系详解

    前言 Hello,开始回归开始每周更新一到两篇博客,本节我们回归下EF Core基础,来讲述EF Core中到底是如何映射的,废话少说,我们开始. One-Many Relationship(一对多关 ...

  9. NodeJS 实现手机短信验证 模块阿里大于

    1,NodeJS 安装阿里大于模块 切换到项目目录使用npm 安装阿里于模块 npm i node-alidayu --save 2,aliyu官网使用淘宝账户登录 登录阿里大于 https://do ...

  10. [0] C# 扩展方法(Extension Method)

    有时有这样的情况,有一个类,你不能修改它,但你又想对它扩展(添加一个方法),这个时候就可以用到扩展方法了.请看下面的例子: using System;using System.Collections. ...