黑马程序员:基础学习<一>

来源:互联网 发布:it维修服务 编辑:程序博客网 时间:2024/05/15 00:35

------- android培训java培训期待与您交流! ---------- 


1、什么是软件?

 现实生活中的事情,放在计算机中处理,这个处理工具:软件

2、Dos命令

Cd    直接退出到磁盘根目录

Md 加文件名  创建一个新的文件夹

Cd  文件夹名  进入到这个文件夹中

Cd..   退到上一级文件夹 .当前文件夹 .. 上一级文件夹

Rd 删除文件夹  删除后不出在垃圾回收站出现

Del  del 文件名.后缀名 删除文件   

Exit   退出命令行

3、Java 语言的跨平台型:

JAVA程序是运行在JAVA虚拟机上,不是直接在操作系统上运行,虚拟机在操作系统上运行会针对不同操作系统,有不同版本的虚拟机。

JRE(Java Runtime Environment )Java 运行时环境

包含虚拟机,包含运行时所需要的类库(支持程序运行的工具)

JDK(Java Development Kit)Java开发工具包,为开发人员使用的

包括JRE

4、环境变量配置:

方式 一: 一劳永逸: 右键   我的电脑   属性    高级   找到环境变量       系统变量中的path     点编辑,复制jdk安装路径将变量值放在最前端,末尾记住要加分号“;”。环境变量配置完成。

方式二:   右键    我的电脑    属性   高级   环境变量    系统变量上面点新建环境(变量名:JAVA_HOME) (变量名:需要填你要配置的路径名字)     点确定    在到path上面进行编辑把变量值放在最前端,需要前后各加% 号。例如:path=%JAVA_HOME%;

因路径中bin的文件不会改变所以不用把bin放在自定义的环境变量里面

例如:变量名:JAVA_HOME

变量值:C:\Java\jdk1.7.0_09

Path= %JAVA_HOME%\bin;

5、临时环境配置:

Set path   查看好已经配置好的环境变量

Set path=    清空原有的环境变量

Set path=C:\Java1\jdk1.7.0_09\bin; 配置临时的环境变量

Classpath、path设置 的作用

Path指引windows系统去哪一个目录,去找javac命令

Classpath JVM服务,指引JVM去哪一个目录,去找可以运行的class文件

开发HelloWorld小程序:

 Class Demo

{

Public static void main(String[ ]  args)

{

System.out.println(“hello world”);

}

}

6、关键字

  Java语言中,被赋予了按特定意义的单词,关键字,特点全部小写字母

7、标示符

   在程序中我们自定义的名字。例如: 包名、类名、函数名、变量名等

标示符的命名规则:

   必须以26个字母大小写、数字、下划线(_)、美国符号($)组成,。

开头不能是数字,不能使java关键字。

标示符的通用规则

   1、类名 接口名

      所有单词首字母需要大写,以驼峰式命名方式   例如:QueYue 

2、变量名和函数名

所有单词首字母亲需要小写,以驼峰式命名方式  例如:xxxYyyyy

3、常量名

所有单词都大写        例如: XXX_YYY

4、包名

所的单词为小写       例如: xxxx_yyyyy_zzzz

第二天的学习内容

注释:

单行注释: //注释的内容

多行注释: /*  注释内容  */

文档注释:/**  注释内容  */   java特有的一个种

常量:

固定不变的数据

1、整数型常量  就是生活中常用的整数  例如:100

2、小数型常量 就是整数后面带小数点的数  例如: 0.1 1.1

3、布尔类型常量 就只有两个值 :true(真)或false(假) 如果结果成立就为 true ,结果不成立为false.

4、字符型常量  用单引号标示的字符常量(’’) 例如:’a’、’1’、’你’, 里面只能有一个字符

5、字符串常量 用双引号标示的字符串常量(””) 例如:”你好”

常量是不可以改的数值

进制转换

十进制转成二进制   除2取余数(读数从下到上)  

二进制转成十进制   2的幂运算,把1位上的数据相加(从右到左)

二进制转成八进制   3个二进制位一组进行计算 转成十进制 0-7  以0开头

二进制转成十六进制   4个二进制位为一组进行计算转成十进制0-9 A B C D E F  以0x开关

  对于八、十六、十进制进行互转,就是先把这些进制数转换成二进制,再把二 进制转换成想要的进制。

负数的二进制形式

负数的最高位为1,正数最高位是0

 负数的二进制计算方式,

正数二进制取反+1

  取后就是1变成0,0变成1.

变量:

   为什么要定义变量? (变量是内存中的一个存储区域 )

变量是用来存储常量值,方便后期的运算,变量中存储的值是可以改变的

通俗讲(用来存储不确定的数值但是数据类型不会变化就叫变量)

内存空间存数数据,只能存储同一类型的数据,要么都是整数,要么都是小数,空间在内存中,一旦被开辟,存数的数据类型就定好了。

什么时候定义变量?        

当数据不确定的时候。需要对数据进行存储时。       

 就定义一个变量 来完成存储动作。

定义变理的三要素: 数据类型 变量的名字 初始化值

   变量的名字(标示符)

变量注意:

变量的作用范围(在一对{}内)

初始化值

Java语方是强类型语言,对于每一种数据都 定义了明确的具体数据类型

基本数据类型

   

整数类型:

Byte 占有八个二进制位   1个八位  二的负7次,二的7次减一。

short  占有十六个二进制位 2个八位 二的负15次,二的15次减一。

int  占有三十二个二进制位 4个八位 二的负31次,二的31次减一

long 占有六十四个二进制位 8个八位 二的负63次,二的63次减一

int类型是JAVA中默认的整数类型

:有符号数据的表示形式
(1)原码
A:所谓原码就是二进制数的有符号表示法,即最高位为符号位,"0"表示正,
  "1"表示负,其余位表示数值的大小
**举例
***+7 0 0000111
***-7 1 0000111
(2)反码
A:正数的反码和原码相同
**举例
***+7 0 0000111
B:负数的反码是符号位不变,数值为按位取反,就是0变1,1变0
**举例
***-7 1 1111000
(3)补码
A:正数的补码和原码相同
**举例
***+7 0 0000111
B:负数的补码是符号位不变,数值为按位取反,就是0变1,1变0,最后在加1
**负数的补码其实就是反码加1
**举例
***-7 1 1111001

小数类型:

Float 单精度浮点类型

Double 双精度浮点类型     小数中JAVA默认为double

字符类型:

Char 字符类型   存储一个字符  2个8位  0-65535

Boolean 类型   只有两个值:true   false 

数据类型转换

在JAVA语言中,要求计算的数据的类型必须一致,如果数据类型不一样的 时候 ,会发现数据的转换。(取值范围小的,向取值范围大的转换

例如:

int x=3;

Byte b=4;

X=x+4

运算两边必须是同类型,不是同类型是不可以运算。

 如果不是相同类型 ,但是必须是数值型。

 先把不同的数值类型转换成相同的数值类型,在转换中会以谁为主了。以占有内存最大的为主

强制类型转换

手动去完成转换格式(目标类型)(转换的数据)

例如:

Byte b=3;

B=(byte)(b+4);

强转动作要慎用,会损失精度

例如

Byte b=4;   //4是int类型  只要是整数都是int类型

B=3+7; //因为右边是常量,系统自动会把3+7变成

Byte的取值范围是-128~127 

 在编译中,因为等号右边的值时发现是常量 ,但它会自动判断是否超过byte类型的取值范围,没有就会自动进行强转

例如:

Byte b=4;  

Byte b1=4; 

 Byte b2=3   

 B=b1+b2    b1和b2是变量,因为它的数值是变化的不确定,所以

在编译中时,无法检查这个两个值。(右边不确定 是无法判断的)

b1b2变量意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内, 他检查不了就会报错(可能丢失精度),如果是常量编译器就能够判断了

例如:

Int x;

Int x1=10;

Int x2=98;

X=x1+x2;  

在计算当中,整数运算的默认运算结果也是整数。

Byte和整数默认类型的区别

int运算,一旦超出这个范围,他自动底层有强制转换过程,保留自己原有位置、 高位全舍弃  这就是byteint的区别

算术运算符 +、 - 、* 、/  、%(取余,模运算)、 +(连接符)

Int x=6300;

X=x/1000*1000;

  System.out.println(x);

  结果为1000  因为JAVA是强类型语言,所以自动会弃掉小数位。

%模运算

特点:

6%5

%符号,两边相等的时候,余数为0

%符号 左边小于右边的时候,余数是左边

%符号 负数,就参考左边

+(连接符)

System.out.println(3+ ”2”)

任何数据和字符串相+都叫做相连接,所以就叫做字符串三二

+和字符串进行运算时,失去了加法的作用,变成了连接符号,任意类型 的

数据和字符串进行+运算,结果都是字符串

++ 和- -

  ++(自增:就在原有数据基础上+1,在赋给原有数据) 

例:

Int a =3;

a++;  //a=a+1;  //独立运算,没有其他变量参与。

++a;  

++在变量的前面,先会自增在赋值  例: b=++a ;

例:

Int a=3,b;

b = a++; 

运算顺序必须要注意的

 只要有其他变量参与运算

a++ :a其实是先自增加1,再把临时区域内原先的值临时存储起来,当

a自增加1完成后就把值传给a,在把临时存储里面保存的值给b

 (谁在前面谁运算)

赋值运算符

   = += -= *= /=  %=( 底层都有一个转换过程)

原理:将左右两边的和赋给左边。

   Int a,b.c;

A=b=c=4;

   Int a=4;

a+=2; //a =a+2  将左右两边的和赋给左边。

例:

Short s=3;

S+=4;   // (在底层做自动转换

 编译通过,它在赋值过程中进么了自动转换。

S= s + 4   //因为S的值   二次运算,

S=(short)(s+4);

编译失败,它编译过程中进行了类型的提升,不能在赋给低值类型 。

比较运算符 = =、>= <= != 

  比较运算符比较后都要有结果

而且结果只有两个 true 或false

==  比较两边是否相等,如果相同则为true,反之为false

!=  比较两边的结果是否不同,相同则为false,反之则为true

逻辑运算符

作用: 用于连接两个boolean类型的表达式

&:与符号

&符号特点;

True & true= true;

True & false= true;

False & true= false

False & false= false

运算规律:

只有两边都为true, 结果才是true,其他情况都是false

| 或运算符特点:

True | true= true;

False | true = true;

True | false = true;

False| false = false

|或运算规律:

两边只要有一个是 true,结果肯定是true.

只有两边都为false,结果是false;

^:异或:和或有点不一样

True ^true =false;

True^ false=true;

False^ true=true

False^ false=false; 

   符号的两边结果如果相同,结果是false

符号的两边结果如果不同,结果是true;

! 非运算的特点:

判断事物的另一面

!True=false

!False=true;

 

&&和&的区别:

  和&运算的结果是一样的,但是运算过程有点小区别

&无论左边的运算结果是什么,右边都参与运算

&&:当左边为false时,右边不参与运算的

|和||的区别:

和|运算的结果是一样的,但是运算过程有点小区别

|:无论左边的运算结果是什么,右边都参与运算

||:当左边为true时,右边不参与运算

位运算符

&运算、|运算:

  将数据转成二进制,进行位运算时,0表示false 、1表示true.

^异或运算:

一个数异或同一个数两次,结果还是这个数((5^3)^3)=5

~反码运算 :~6=-7  正数二进制取反+1

    

左移动<< 

左移几位其实就是该数据乘以2的几次方。

<<可以完成2的次幂运算

 3<<2 =12

    3*2(2)=12;

右移动>>

右移几位其实就是该数据除以2的几次方。

>>可以完成2的次幂运算

6/2(1)=3; 6/2(2)=6/4=1;

  对于高位出现的空位,原来高位出现什么就用什么补上

无符号右移 >>>

   数据进行右移时,高位出现的空位,无论高位是什么,空位都用0补

 要想运算高效,首选位运算

例:

最有效率的运算方式算出2乘以8等于几??

 System.out.println(2<<3)

例:

对两个整数变量的值进行互换(不需要第三方变量)

面试的时候使用

Int a=3 

Int b=5;

 

A=a^b;  //a=3^5;

B=a^b; //b=(3^5)^5;//3

A=a^b; //a=(3^5)^3; //5

三元运算符

  表达式:(条件表达式)?表达式1表达式2; 

例:int x=2 y=(x>1)?100:200;

 无论表现形式是什么都叫运算符:只是要运算符就要有结果

如果条件为true,运算后的结果 是表达式1

如果条件为false ,运算后的结果是表达式2

例:

三个整数用来判断那个是最大值

 Int o,p,q;

  Int temp=(o>p)? o:p;

     Int max=(temp>q)?Temp:q;

 

 If和三运算符的区别

   If 可以没有运算结果,三元必须有结果

   If 可以进行相当复杂的逻辑运算


------- android培训java培训期待与您交流! ---------- 

原创粉丝点击