javaSE基础03
javaSE基础03
生活中常见的进制:
十进制(0-9)、星期(七进制(0-6))、时间(十二进制(0-11))、二十四进制(0-23)
进制之间的转换:
十进制转为二进制: 将十进制除以2,直到商为0 ,将余数从下上连接起来就是二进制
10---->1010
二进制转十进制:将二进制的每一位乘以2^n ,n从0开始,n每一次加一,在将结果相加。
1001 ----》 1*2^0 +0*2^1 +0*2^2+1*2^3 = 9
将二进制换为八进制:
方式一:二进制--->十进制--->八进制
方式二:一个八进制相当于三个二进制位,将二进制三位一分割,计算出来
010 100 101 = 245
将二进制换为十六进制 :(0-9)(a(10)-f(15))
0000 1010 0101 = a5
1.2变量:
Java数据类型分为两种:
基本数据类型
Byte (字节) 8位(bit)
2.引用数据类型
String 字符串
变量的声明方式:
1.数据类型 变量名
2.数据类型 变量名1,变量名2...
数据类型:
数据类型的转换
1.自动类型转换
小数据类型--->大数据类型转换
2.强制类型转换
大的数据类型 ----> 小的数据类型。
数据类型转换中需要注意的点:
1.凡是short ,byte ,char 定义的变量,在做运算 的时候,数据类型都会自动转换为int
2.两个不同数据类型做运算,给过取决于大的数 据类型。
运算符:
1.1算数运算符:+,-,*,/,%
1.2自增自减 :++ ,--
1.3赋值运算符 : = ,+=,-=,*=,/=
1.4关系运算符 : >,<,>=,<=,== ,!= (结果只有两种,要么为真,要么为假)
1.5逻辑运算符: & ,| ,! ,&& ,||
Int 在计算机中有32位字节
位运算:只能计算二进制
&(与):两者为1,才是1,其他的为0
|(或):两者为0,才是0,其他的为1
^(异或):相同为0,不同为1
~(取反):将0变1,将1变0
负数的表现形式:二进制位的最高位为1 ,那么这个数就是一个负数
全1为 -1
1111-1111 1111-1111 1111-1111 1111-1111
全0为0
0000-0000 0000-0000 0000-0000 0000-0000
负数由来:负数所对应的正数-1 再取反
负数所对应的正数取反再 +1
比如:int a=6;
Int b=3;
0000-0000 0000-0000 0000-0000 0000-0110
0000-0000 0000-0000 0000-0000 0000-0011
&
--------------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0000-0010 = 2
0000-0000 0000-0000 0000-0000 0000-0110
0000-0000 0000-0000 0000-0000 0000-0011
|
-----------------------------------------------------------------------
0000-0000 0000-0000 0000-0000 0000-0111 = 7
位运算:用来对数据进行加密
1.6右移
>> 右移 :右移多少,就需要用移动的数除以2的多少次方
原理: 6>>1
空缺的位自动补0
0000-0000 0000-0000 0000-0000 0000-0110
000-0000 0000-0000 0000-0000 0000-0011 ---> 3
将整体向右移动移位,超出的位就去掉,空缺位就补0,必须是最高 位补0
如果最高位是1,空缺补1
如果最高位是0,空缺位补0
<< 左移 :左移多少位,就用这个数乘以2的多少次方
原理:6 <<1
特点:整体往左移,被移除的最高位丢弃,空缺的位就补0
0000-0000 0000-0000 0000-0000 0000-0110
0000-0000 0000-0000 0000-0000 0000-1100 --->12
>>> 无符号右移
6>>>1的结果和右移是一样的
-6>>>2
1111-1111 1111-1111 1111-1111 1111-1010 --- -6
0011-1111 1111-1111 1111-1111 1111-1110
无论你的最高位是零还是1,最空缺位都补0
两个数相交换:三种方式
一个数两个相同的^最后结果还是原来的数A。
(B ^ A ) B
javaSE基础03的更多相关文章
- 巩固JavaSE基础--IDEA完成实战项目
PS:学习完JavaSE基础后,需要有一个项目来测试自己的学习成果,并加以巩固.所以在这里,就让我们来学习下“一本糊涂账”项目吧.(此项目来源于Java自学网站) 项目完成效果图一览
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础05
javaSE基础05:面向对象 一.数组 数组的内存管理 : 一块连续的空间来存储元素. Int [ ] arr = new int[ ]; 创建一个int类型的数组,arr只是一个变量,只是数组的一 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javascript基础03
javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- JavaSE基础01
JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...
- javase基础复习攻略《十》
按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...
随机推荐
- 解决UINavigationController在pushViewController时出现的"卡顿"问题
进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...
- cocos2d-x屏幕分辨率,窗口大小总结
这个东西很烦人,相信很多人都不理解 今天来总结一下,首先有很多概念都要事先弄得清楚明白 1.屏幕分辨率 所谓屏幕分辨率相信很多人都知道他的概念,不就是1280pxX720PX吗?不就是这种形式吗?有什 ...
- 【BZOJ-2597】剪刀石头布 最小费用最大流
2597: [Wc2007]剪刀石头布 Time Limit: 20 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 1016 Solved: ...
- Javascript获取div真实高度
第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}.这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度. 第 ...
- Zabbix监控nginx-rtmp status(json版)
与前面的文章 zabbix监控nginx-rtmp status(html版)区别只在于取值的页面不一样 http://127.0.0.1:81/control/get/all_streams sta ...
- Java 抽象类与接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类与接口是 Java 语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予 Java 强大的面向对象的能力.他们两者之间对 ...
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
参照: http://course.ccniit.com/CSTD/Linux/reference/files/018.PDF http://hi.baidu.com/raycomer/item/94 ...
- mysql ,服务器耗时测试
测试一 字段:ID,test,number 电脑配置:8g内存 同时写入超过5w条,就会卡死 错误提示 Fatal error: Allowed memory size of bytes exhaus ...
- sql手工注入时的探测技巧汇总
工具的灵活性肯定比不上人,在手工探测的基础上再去自定义工具,才是正道. sql注入时手工探测技巧 =================================================== ...
- 【Java】增强的for流程
增强for循环语法: for(type element: array) { System.out.println(element); } 可遍历输出数组元素,但无法获取元素下标. 相关链接 ...