------- 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是变量,因为它的数值是变化的不确定,所以
在编译中时,无法检查这个两个值。(右边不确定 是无法判断的)
b1和b2是“变量”意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内, 他检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断了
例如:
Int x;
Int x1=10;
Int x2=98;
X=x1+x2;
在计算当中,整数运算的默认运算结果也是整数。
Byte和整数默认类型的区别
int运算,一旦超出这个范围,他自动底层有强制转换过程,保留自己原有位置、 高位全舍弃 这就是byte和int的区别
算术运算符 +、 - 、* 、/ 、%(取余,模运算)、 +(连接符)
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培训、期待与您交流! ----------