2018-05-08 第二天

简介: 一、Java的特点: Java是简单的: 不再有#include 和#define 等预处理功能 不再有struct,union及typedef 不再有函数、 不再有指针、不再有多继承(但可以多重继承) 不再有goto 不再有操作符重载(Operatior Overloading) 不再有全局变量  取消自动类型转换,要求强制转换 不再有手动内存管理 Java是安全的:取消了指针,自动内存回收。

一、Java的特点:

Java是简单的:

不再有#include 和#define 等预处理功能

不再有struct,union及typedef

不再有函数、

不再有指针、不再有多继承(但可以多重继承)

不再有goto

不再有操作符重载(Operatior Overloading)

不再有全局变量  取消自动类型转换,要求强制转换

不再有手动内存管理


Java是安全的:取消了指针,自动内存回收。


Java是完全面向对象的:继承、封装、多态


Java是健壮的:Java的强制类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证


java 最大的特点和优势:

java 跨平台。

 

二、Java及C语言的跨平台对比:

Java跨平台需要先编译再解释成不同平台可以执行的字节码文件,且一次编译多处执行;而C语言直接编译成与本地平台相关的二进制数据文件,对于不同平台需要多次编译,多次执行。


1.java的跨平台原理:

     jvm 的作用:

1:类加载

2:内存的管理。

3:解释给本地平台去执行字节码。

1240


2.C语言的跨平台原理:

1240

三、Hello World


public class HelloWorld{//HelloWorld是类的名字。要和文件的名字一致。


//类体

public static void main(String[] args){//应用程序的入口方法。俗称main方法,又叫主方法。格式是固定的。

//main方法体

 System.out.println("Hello World!");

}

}

public:被访问的权限。

class:一个特殊的单词。

HelloWorld:类的名字。HelloWorld 要和文件的名字一致。

{}:类体

public static void main(String[] args){}:java 应用程序的入口方法。俗称 main 方法,主方法。格式是固定的。

main方法体:

System.out.println("Hello World!");

在系统的标准输出设备上打印双引号内部的内容。原样输出字符串的内容。并输出一个换行符。


DOS运行过程:

编译:javac HelloWorld.java--->HelloWorld.class

解释:java HelloWorld


为何不添加.class?

因为程序会从包含入口的类开始执行。所以只写类的名字即可。


四、进制:

1:在java 程序中 表示一个具体的数的时候。可以使用几种进制来表示?

四种: 二进制、八进制、十进制、十六进制。


//练习java 中程序的进制的表示形式  

public class TestNumber{

// 入口方法 main

public static void main(String[] args){

//十进制表示10   将数字10 转换为数字对应的字符串,然后再打印。

System.out.println(10);

//二进制表示10  高位添加0b 表示这是一个二进制的数据  jdk 1.7增加的功能

System.out.println(0b1010);

//八进制  高位补0 代表是一个八进制的数据

System.out.println(012);

//十六进制  高位补0x

System.out.println(0xa);

}

}


2:二进制:

规则:逢二进一, 一个二进制位可以有2种不同的状态。[0-1]

在计算机学科中 ,一个二进制位一个0 或者是一个1 是 计算机的最小的存储单元。

一个二进制位称之为 1bit。 8bits 称之为一个字节 1byte。 可以有256(2^8)种状态。

0  1(一个二进制位的两种状态2^1)

00 01 10 11(两个二进制位的四种状态2^2)

000 001 010 011 100 101 110 111(三个二进制位的八种状态2^3)


3:十进制:用0-9 十个字符代表10种不同状态。多个十进制的位的组合来代表更多的不同的状态。

规则:逢十进一,一个十进制位可以有10种不同的表示形式[0-9].


4:八进制:

规则:逢八进一,一个八进制位表示的范围[0-7]


5:十六进制:

规则:逢十六进一 ,一个十六进制为表示的范围是[0-15],因必须只使用一个字符来表示 10~15。所以规定,使用[a-f][A-F]来代表 [10-15]


使用四种进制表示0-15

十进制    二进制    八进制    十六进制

    0            0             0             0

   1             1             1             1

   2            10           2            2

   3           11           3             3

  4            100          4              4

   5          101          5              5

   6         110          6              6

  7          111          7              7

   8        1000        10             8

   9        1001        11             9

  10      1010         12            A

  11       1011         13            B

  12      1100        14            C

  13       1101        15            D

  14       1110        16            E

  15        1111        17          F



6:进制转换:

    1:任何进制到 十进制的转换

123 = 1* 10^2 + 2*10^1 + 3*10^0 = 1*100 + 2 * 10 + 3 * 1 = 100 + 20 + 3 = 123;

0b101 = 1*2^2 + 0 * 2^1 + 1 * 2^0

0715 = 7*8^2+ 1*8^1 + 5 = 448+13 = 461;

0xa3 = 10 * 16^1 + 3*16^0 = 163

2: 十进制到其他进制的转换。

十进制到二进制:除二取余法。逆序输出。

十进制到八进制:除八取余数

十进制到十六进制:除十六取余数



3.八进制和二进制规则:一个八进制位表示成3个二进制位,3个二进制位合成一个八进制位

101010<--->52

61<--->110001

4.十六进制和二进制的转换

规则:一个十六进制位表示成4个二进制位,4个二进制位合成一个十六进制位

0xae3<--->101011100011

 

五、机器码转码:原码--反码--补码

问:一个整数在内存中是以什么样的形式表示的?

答:首先内存中的表现形式计算机肯定能直接识别。这种表现的形式 称之为 机器码。

用一个字节来表示 机器码。

计算机科学中规定:用字节的最高位来代表符号位,0 代表是正数 1 代表负数。


A、原码机器码的表示数据的规则:

最高位为符号位,低7位为数值位。

10: 0000 1010

-10:1000 1010


计算机并不是使用原码来表示数据的。

缺点:1:有+0  和 -0 之分。  0000 0000  1000 0000

2:如果考虑符号位参与运算,那么在设计cpu的时候,会增加cpu的设计的难度。


B、反码:

规则:如果是正数,那么原码和反码一致。

负数,在原码的基础上,符号位不变,其他的二进制位 1 变0 0 变 1 取反。

10:0000 1010 --反码--> 0000 1010

-10:1000 1010--反码--> 1111 0101


C、补码:

规则:如果是正数,那么补码和原码一致。 三码合一。负数,先求原码,然后求反码,最后+1.

-10: 1000 1010--反码--> 1111 0101 --求补-->(+1)  1111 0110

-1:1000 0001--->1111 1110 ---> 1111 1111


优点:

1:没有+0  和 -0 之分

0000 0000

1000 0000 --> 1111 1111 --(+1 )--> 1 0000 0000

2:计算机在使用补码计算的时候,并没有把符号位当作符号位来看待,而是当作了普通的数值位来使用,计算的规则和数值位的规则一致。cpu 的设计很简单了。


计算机科学中广泛了采用了补码的形式表示数据。

规则:补码的补码是原码。

1111 1111 ---> 1000 0000 --(+1)--> 1000 0001


六、标识符

写程序的目的:数据的运算和处理。

那么在程序中如何去访问要处理的数据呢?

通常的做法是,给要处理的数据所在的内存起一个名字。通过名字来访问数据所在的内存区域。而这个内存区域的名字在java中就称之为:标识符。

一个标识符对应着内存中的一块区域。


    1.基本的命名规范:

1:见名知意 通过标识符的名字要能体现标识符代表的内存区域的数据的性质。

举个栗子:年龄的数据:age  名字的数据:name

2:遵循驼峰命名法:多个单词构成标识符,单词的首字符要大写。

举个栗子:学生的年龄:studentAge。 stuAge。

3:尽量用英文单词命名。


不同种类的标识符的命名规范:

1.class 后的名字即类名:

首字符大写,遵循基本命名规范即可。

2.局部变量的命名规范:

首字符小写。

尽量不要使用单个字符作为变量名。

3.终态变量的命名规范:

所有字符全部大写,多个单词使用下划线分割。


2.标识符的命名规则:

1:首字符必须 26个英文字母的大小写形式、下划线、$。后面的字符多了[0-9]10个数字字符。

2:不能使用 java 语言中的关键字 (java 中具有特殊意义的单词符号) 。又称为保留字。

Public、class、static、void、final 等

3:标识符大小写敏感。即区分大小写。

4:标识符的长度没有限制。(不建议使用单个字符作为标识符,也不建议太长)。

5:不能使用 空格,# 等特殊字符。

例子:2name, a, nianling,你好, public,name.


316b531d9415e44320c6a978f1b95dbdac0f143b

目录
相关文章
|
12月前
1332:【例2-1】周末舞会
1332:【例2-1】周末舞会
|
缓存 NoSQL Linux
那天晚上,他真的好快!
那天晚上,他真的好快!
210 0
|
Linux 虚拟化 数据中心
|
人工智能 文字识别 前端开发
第二天笔记
阿里云视觉训练-第二天
|
XML JSON 前端开发
第三天
电子相册搭建
|
弹性计算 Linux 应用服务中间件
打卡第二天
加入7天训练营是全新的体验,再接再厉!
296 0
|
计算机视觉
|
物联网 Linux 前端开发
|
存储 Java
2018-05-09 第三天
一、数据类型   所有写的 java 的源代码 都要复合 java 编译器的规范要能够让编译器理解编译通过。   1在编写源代码的时候需要告诉编译器我申请的内存的名字还有内存中数据的类型。 java是一种强类型语言。
1208 0
你的周末是怎么过的?
周末的日子其实很短,有时候我都会有种错觉,每次醒来的第一反应是今天要上班吗?因为时间短,有限的时间总是有很多种过法,比如经典的一睡到底,我知道的朋友最厉害的能从早上睡到晚上。
1891 0