您的位置:首页 > 职场人生

黑马程序员——java概述

2015-06-11 20:11 232 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一,前言

软件:一系列按照特定顺序组织的计算机数据和指令的的集合。

人机交互:软件的出现实现了人与计算机之间更好的交互,交互方式有以下两种。

1, 图形化界面:这种方式实现简单直观,使用者易于接受容易上手操作。

2, 命令行方式:需要控制台输出特定指令,让计算机完成一些特定操作,较为麻烦需要记住一些命令。

其中命令行方式有:

dir:列出当前目录下的文件以及文件夹

md:创建目录(文件夹)

rd:删除目录

cd:进入指定目录

cd..:退出当前目录,返回到上一级目录

cd\:退回到根目录

del:删除文件

del*:删除所有文件

exit:退出dos命令行

echo:创建文件。

cls:清屏

help:显示所有命令及描述

exit:关闭

示例:md kkk (就会在指定盘下创建一个kkk的文件夹)

rd kkk(就会再把这个目录删除了)

注意:在doc命令行里面删除文件夹,必须要先保证这个文件夹是空的

二,java语言概述

Java语言特点:

1, 是sun(stanford University Network,斯坦福大学网络公司)1995年推出的一门高级编程语言。

2, 是一种面向Internet的一门编程语言。

3, 随着java技术在web方面的不断成熟,已经成为web应用程序的首先开发语言。

4, 是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。

Java语言三种技术架构:

J2EE(Java 2 Platform Enterprise Edition)企业版:是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如:Servlet Jsp 等,主要针对于Web应用程序开发。

J2SE(Java 2 Platform Standard Edition)标准版:是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发,比如Java版的扫雷。

J2ME(Java 2 Platform Micro Edition)小型版:是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费产品,如手机中的应用程序等。

但是在5.0版本后,SUN公司将以上三种技术架构更名为JAVAEE、JAVASE、JAVAME。

跨平台:通过java语言编写的应用程序在不同的系统平台上都可以运行。

跨平台原理:

在不同的平台安装对应的jvm虚拟机(java virtual machine)

JRE (java runtime environment) java运行环境 包含jvm

JDK (java development kit) java开发工具包 包含jre

下图是java官方网站上提供的有关JRE和JDK之间的关系:



简单而言:使用JDK开发完成java程序,交给JRE去运行。

配置环境变量

在jdk下载,安装完成以后,可以配置环境变量,配置环境变量path(为了更好的利用Java开发环境)

配置环境变量(两种方法):

第一种方式: 一劳永逸

1,电脑—属性—高级系统—设置—高级—环境变量

2,编辑path命令,将javac命令文件所在目录的路径放入path路径中,并用;隔开,环境变量中的各个路径之间一定要以分号进行分隔。(设置path环境 变量的时候千万不要删除掉原来的内容。否则,很多程序将无法运行。)

3.,点击确定。然后,一定要新开一个新的DOS命令行窗口,再输入javac命令,如果显示的是javac的参数信息,说明path环境变量配置成功。如下图:



注意:

一定要将javac命令文件所在目录的路径放入path环境变量的开头。否则,如果计算机上以前已经安装了其他版本的JDK并且也已经配置了path环境变量,那么先执行的javac命令就是以前的JDK安装目录下的javac命令。因为windows系统是按照path路径从头向后搜索各个目录的。

第二种方式: 临时配置

在DOS命令行输入

set 查看全部环境变量

set 环境变量名 查看指定变量名的值

set 环境变量名= 指定变量名置空

set 环境变量名=值 指定变量设置指定值

示例:如果想要在原有环境变量上加值是haha,那么set path=haha;%path%

(%path%是原有的环境变量)

注意:临时配置环境变量的方式只在当前DOS命令行窗口有效。窗口关闭,配置即消失。

path 和classpath的区别:path先查找当前目录下找,没找到,再在配置的路径下查找,classpath先查找设置的路径,在查找当前目录。

三,java程序开发体验——helloworld

用记事本编写源代码如何运行?

1,保存为.java文件(java源文件)

2,在dos命令行敲 javac 文件名.java 编译产生.class字节码文件

3,在dos命令行敲 java 类名 即可运行程序

示例:

//定义一个类
public class HelloWorld
{
//主函数
public static void main(String[] args){

System.out.println("大家好,欢迎进入java编程世界!!!");
}

}


运行结果如下图:



四,注释

注释的作用:

1, 注解说明解释程序。

2, 调试程序。

注释分为三种

1,单行注释 // 注释文字

2,多行注释 /* 注释文字 */

3,文档注释/** 注释文字 */

文档注释是java语言的特殊注释,对程序进行说明后可以通过jdk当中的javadoc.exe将这个程序中的文档注释提取出来,形成一个网页,这个网页就是程序中的使用说明书。

例如:

/**

作者:张三

版本:V1.0

*/

注意:

单行注释中可添加单行注释

多行注释中可添加单行注释

但是多行注释中不可有多行注释

五,Java语言的基础组成

标识符

1,在程序中自定义一些名称

2, 由26个英文字母大小写,数字0~9,符号:_$组成

3, 定义合法标示符规则

a,数字不可以开头

b,不可以使用关键字

c,java中严格区分大小写

d,在起名字的时候为了提高阅读性,尽量有意义。

注意:main不是关键字,但它是被虚拟机所识别的名称。

Java中名称的规则

1, 包名:多单词组成时,所有字母都小写。如xxxyyyzzz

2, 类名接口名:多单词组成时,所有字母的首字母大写。如XxxYyyZzz

3, 变量名函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个字母首字母大写。xxxYyyZzz

4, 常量名:所有字母都大写,多单词时每个单词都用下划线连接。如XXX_YYY_ZZZ

Java中常量分类

1, 整数常量。所有整数

2, 小数常量。所有小数

3, 布尔型常量。较为特有只有两个数值 true 和false

4, 字符常量。将一个数字字母或常量用(‘ ’)标识

5, 字符串常量。将一个或多个字符用(” ”)

6, null常量。只有一个数值就是null

例如:4是整数

‘4’是字符

“ab”是字符串

注意:’ ’里面只能有一个字符 “ ”空字符的字符串

对于整数java有三种表现形式

1, 十进制 0~9 满10进1

2, 八进制0~7 满8进1,用0开头表示

3, 十六进制 0~9,A~F,满16进1,用0x开头表示

注意:一个字节是八个二进制位组成

二进制的3位代表一个数值,就是八进制

二进制的4位代表一个数值,就是十六进制

规律:进制越大,表现形式越短

十进制和二进制之间的转换

十进制——>二进制 原理:对十进制数进行除2取余数

二进制——>十进制 原理:二进制乘以2的幂数

其他进制的转换

转成十六进制(四个二进制位就是一个十六进制位)

转成八进制(三个二进制位就是一个八进制位)

负数的二进制表现形式:

对应的正数二进制取反加一

例如:6的二进制是110

-6其实就是6的二进制取反加1

取反:就是将二进制的1变成0,0变成1

0000-0000 0000-0000 0000-0000 0000-0110

取反后:

1111-1111 1111-1111 1111-1111 1111-1001

+0000-0000 0000-0000 0000-0000 0000-0001(加一)

-------------------------------------------------------------------

1111-1111 1111-1111 1111-1111 1111-1010 = -6

注意:负数的二进制最高位是1,正数二进制最高位是0

变量的概念:

1, 内存中的一个存储区域

2, 该区域有自己的名称(变量名)和类型(数据类型)

3, 该区域的数据可以再在同一类型范围内不断变化

为什么要定义变量?

用来不断地存放同一类型的常量,并可以重复使用

使用变量注意

1,变量的作用范围(一对{}之间有效)

2,初始化值

定义变量的格式:

数据类型 变量名 = 初始化值

注意:格式是固定的。记住格式,以不变应万变

理解:变量就如同数学中的未知数

变量就是将不确定的数据进行存储,也就是需要在内存开辟一个空间,如何开辟内存空间呢?

答:就是通过明确数据类型,变量名称,数据来完成的

什么时候定义变量?

答:当数据不确定时,需要进行对数据存储时,就定义一个变量来完成存储动作。

类型转换:

类型的自动提升:

在运算中,当低类型数据与高类型数据进行计算时,系统会自动将表达式中的低类型数据提升到高类型。

例如:

byte b = 3 ;

int c;

c= b + 2; //b会自动提升为int类型进行运算。

强制转换:

例如:
byte a = 3;
a = a + 4;
运行结果如下:





这时改成如下图:

a = (byte)(a+4);//将a+4的结果强制转换成byte类型。

转义字符:

通过\ 来转变后面字母或者符号的含义

\n:换行

\b:退格。相当于Backspace

\r:按下回车键。windows系统,回车符是由两个字符来表示\r\n

\t:制表符。相当于tab键。

比较运算符:






注意:

1,区别比较运算符“==”和赋值运算符,前者是比较符号左右两边数据是否相等,而后者是把符号右边的数据赋给左边的变量。

2,“==”、“!=”可以用于对象的比较,而对象的比较通常不是很简单地通过对象名字或对象类型比较,而是有自己的equals()

函数。

逻辑运算符:

"&"符号的运算特点:

true & true = true;

true & false = false;

false & true = false;

false & false = false;

"&"符号运算规律:

运算的两边只要有一个是false,结果肯定是false。

只有两边都为true,结果才是true。

"|"符号的运算特点:

true | true = true;

true | false = true;

false | true = 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;

!!true = true;

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

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

&&:当左边为false时,右边不参加运算,这样可以提升效率。

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

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

||:当左边为true时,右边不参加运算,这样可以提升效率。

三元运算符:

格式:

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

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

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

位移运算符:

<<:把数据对象的二进制位依次向左移n位,右边空出位置补0。

例如:20<<2,计算结果为01010000,十进制值为,80。

>>>:把数据对象的二进制位依次向右移n位,左边空出位置补0。

例如:20>>>2,计算结果为00000101,十进制值为5。

>>:把数据对象的二进制位依次向右移n位,对于高位出现的空位,原来高位是什么就用什么补这个空位。

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

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

六,程序流程控制

if语句

格式一:

if(条件表达式)

执行语句;

格式二:

if(条件表达式)

{

执行语句1;

}

else

{

执行语句2;

}

格式三:

if(条件表达式)

{

执行语句;

}

else if (条件表达式)

{

执行语句;

}

……

else

{

执行语句;

}

注意:
1,if else结构 简写格式:变量 =(条件表达式)?表达式1:表达式2;,
2,if( 表达式 )后面不能加分号,否则无论表达式为true或者false,都不执行任何语句。
三元运算法:
好处:可以简化if else代码。
弊端:因为是一个运算符所以运算完必须要有一个结果。

switch语句
格式:

switch(表达式)

{

case 取值1:

执行语句;

break;

case 取值2:

执行语句;

break;

...

default:

执行语句;

break;

}
注意:

1,switch语句选择的类型只有四种:byte,short,int,char。
2,case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3, 结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5,进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。

if和switch特点和应用:

if:

1. 对具体的值进行判断。
2. 对区间判断。
3. 对运算结果是boolean类型的表达式进行判断。
switch:

1. 对具体的值进行判断。
2. 值的个数通常是固定的。
(对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高。)

while语句
格式

while( 条件表达式 )
{

执行语句;

}

注意:不要写while(x < 3);这样的语句,后面的分号就是循环体,代表不执行任何语句,这个循环就成了一个死循环。

do while语句
格式:

do

{

执行语句;

}
while( 条件表达式 );

while和do while的区别:
do while语句的特点:无论条件是否满足,循环体至少执行一次。
while如果条件不满足,循环体一次都不会执行。

for语句
格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{

执行语句;

}
例如:



会报错,因为System.out.println("b"),不知道真假,for循环中间的循环条件表达式要么真,要么假。

for和while的区别:
1,变量有自己的作用域,对于for来讲:如果将用于控制循环的增量定义在for语句中,那么该变量只有在for语句内有效。
for语句执行完毕。该变量在内存中被释放。
2,for和while可以进行互换,如果需要定义循环增量,for更合适。
总结:什么时候使用循环语句?
当要对某些语句执行很多次时,就使用循环语句。

跳转语句
1,break语句
该语句作用是直接跳出循环语句或者判断分支语句。应用范围:选择结构和循环结构
2,continue语句
该语句的作用是程序从循环体的开始出执行,不必考虑循环体中已经执行了多少轮循环。应用于循环结构
注意:
1,两个语句离开应用范围,是没有意义的。
2,这两个语句单独存在,下面都不可以有语句,因为执行不到。
3,continue语句是结束本次循环继续下次循环。
4,标号的出现可以让这两个语句作用于指定的范围。

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: