java基础教程笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA基础教程笔记
第一章:java语言概述
J2se:J2SE(Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程
J2ee:J2ME(micro edition),又称为微缩版,主要应用于嵌入是系统开发,如手机和PDA的编程
Jsme:J2EE(Enterprise Edition)是Java2的企业版,主要用于分布式的网络程序的开发
类库:属性和方法,是对具体的一种抽象
OOA,OOP,OOD.
Java和C和c++语言都是跨平台的语言
1.c和c++是源码型平台无关性语言。
2.java是目标型的平台无关性语言。
Java的执行方式和c语言的执行方式的区别?
JVM:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。编译虚拟机的指令集与编译微处理器的指令集非常类似。
什么叫做环境变量?
环境变量的设置,变量名,变量值(jdk所安装的位置),幻灯片有相关内容
第二章:java程序结构
Java程序的结构:
1./*这是一个简单的Java程序示例程序*/
2.package mypack;
3.importjava.util.*;
4.public class Example {
5.public static void main (String args[ ]) {
6.System.out.println("Java欢迎您!");
7.}
8.}
args[ ]:主函数调用时候传入的参数
final varTypevarName[=value],声明一个常量的时候!比如说声明一个圆周率:3.14
java的基本数据类型-记忆
true 和false 在java语言中,true和false的值是什么?0或1…….?
Byte:本身是整形,是一个字节,在32位机和64位机上是不会改变的。
Unicode:唯一码是两个字节,
背景:用两个字节表示一个汉字
*char与byte或short之间的赋值必须实行强制转换
有关基本数据类型的知识挖掘?
算术运算符和算术表达式:
JAVA移位运算符:
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次数和64的余数,也就是移动66次和移动2次得到的结果相同。
三种移位运算符的移动规则和使用如下所示:
<<运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
语法格式:
需要移位的数字<<移位的次数
例如:3 << 2,则是将数字3左移2位
计算过程:
3 << 2
首先把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,然后把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100,则转换为十进制是12.数学意义:
在数字没有溢出的前提下,对于正数和负数,左移一位都相当于乘以2的1次方,左移n位就相当于乘以2的n次方。
>>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1.
语法格式:
需要移位的数字>>移位的次数
例如11 >> 2,则是将数字11右移2位
计算过程:11的二进制形式为:0000 0000 0000 0000 0000 0000 0000 1011,然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 0010.转换为十进制是3.数学意义:右移一位相当于除2,右移n位相当于除以2的n次方。
>>>运算规则:按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
那么不同点是什么?
无符号位移(>>>)和有符号位移(>>)的区别是
有符号位移运算时如果数字为正数时位移后在前面补0,为负数时则在位移后在前面补1 例
100>>2==25 和上面的计算方法一样
如果100为负数
-100>>>2
-100的二进制为1111111111111111111111111111111111111111111111111111111111111100 移除最后2位后11111111111111111111111111111111111111111111111111111111111111
之后在前面补两位1111111111111111111111111111111111111111111111111111111111111111
变为十进制后结果为-1
所以
-100>>>2=-1
其他结构和>>相似。
小结
二进制运算符,包括位运算符和移位运算符,使程序员可以在二进制基础上操作数字,可以更有效的进行运算,并且可以以二进制的形式存储和转换数据,是实现网络协议解析以及加密等算法的基础。
实例操作:
public class URShift {
public static void main(String[] args) {
int i = -1;
i >>>= 10;
//System.out.println(i);
mTest();
}
public static void mTest(){
//左移
int i = 12; //二进制为:0000000000000000000000000001100
i <<= 2; //i左移2位,把高位的两位数字(左侧开始)抛弃,低位的空位补0,二进制码就为0000000000000000000000000110000
System.out.println(i); //二进制110000值为48;
System.out.println("
");
//右移
i >>=2; //i右移2为,把低位的两个数字(右侧开始)抛弃,高位整数补0,负数补1,二进制码就为0000000000000000000000000001100
System.out.println(i); //二进制码为1100值为12
System.out.println("
");
//右移example
int j = 11;//二进制码为00000000000000000000000000001011
j >>= 2; //右移两位,抛弃最后两位,整数补0,二进制码为:00000000000000000000000000000010
System.out.println(j); //二进制码为10值为2
System.out.println("
");