黑马程序员——JAVA概述与基础语法

时间:2021-08-09 15:29:58

黑马程序员——JAVA概述与基础知识

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

 

万事开头难,开好了头,努力坚持下去,我坚信,胜利就在前方.

(1) 明确学习目标 (2) 明确规则

 

知识点总结:

 一  计算机基础知识

 

1.     计算机软件: 软件是按照特定顺序组织的计算机数据和指令的结合,软件开发就是制作软件;软件一般分为两大类

(1) 系统软件 : 如windows ; Linux; dos等…

(2) 应用软件 :如 360安全卫士 ; QQ ; 扫雷 等等

 

2.      人机交互:其中介就是软件,软件实现了人与计算机之间的更好的交互。

         交互方式:

         图形化界面:简单直观,容易操作。如:360

         命令行方式:需要一个控制台,要记命令,较麻烦。如:DOS命令行

3.     计算机语言

(1)                简单说:人与计算机交流的方式或工具。

          如何打开控制台

        *开始--程序--附件--命令提示符

        *开始--运行--cmd--回车

        *Win+R--cmd--回车

 

(2)    (1)通过DOS命令行进行命令的演示,发现操作计算机就如同和计算机说话一样

(3)    (2)语言:人与人之间用于沟通的一种方式。

(4)    (3)计算机语言:人与计算机交流的方式。如C,C++,Java都是计算机语言。

(5)   (4)常用的DOS命令:

              *D:--回车 盘符的切换

              *dir

              *md

              *rd

              *cd

              *cd..

              *cd\

              *del

              *exit     

              *cls 清屏

(6) 认识键盘,熟练运用键盘上的快捷键

例如: *键盘的认识

                     **Tab(table)缩进                    

                     **Shift转换键

                     **Ctrl(control)控制

                     **Windows

                     **Alt(Alternative)交换,替换

                     **空格

                     **Enter回车键

                     **上下左右键

                     **PrtSc 

              *快捷键

                     **Ctrl+A

                     **Ctrl+C

                     **Ctrl+V

                     **Ctrl+X

                     **Ctrl+Z

 

二 java语言概述与基础知识

<1> java语言简介:

       java语言:由SUN(Stanford University Networt,斯坦福大学网络公司)1995年推出的一门共计编程语言。它面向Internet,是web开发的首选语言,具有简单易学、完全面向对象、安全可靠、与平台无关等特点。

 

<2>     java语言的三种技术架构

       J2EE:Java 2 Platform Enterprise Edition,企业版。

       J2SE:Java 2 Platform Standard Edition,标准版。

       J2ME:Java 2 Platform Micro Edition,小型版。

       Java5.0后,更名为JAVAEE、JAVASE、JAVAME

 

<3>     java语言的最大特点

 

       Java语言的口号就是: 一次编译,到处运行

所谓跨平台性就是指java语言编写的程序一次编译后可以再多个系统平台上运行.

 

那么,能跨平台的原理是什么呢?

 

在需要运行java应用程序的操作系统上,先安装一个java虚拟机(Java Virtual Machine 简称JVM),(注意不是能在所有的平台上运行,关键是该平台是否能安装相应的虚拟机).由JVM来负责java程序在该系统中的运行。有了JVM,同一个程序可在不同的操作系统中执行,这就实现了java程序的跨平台性。java语言是跨平台的,但是JVM不是跨平台的

关于JVM:

        java语言是跨平台的,但JVM却是依赖于平台的,JVM运行在一个平台上,需要用到系统底层的东西,所以不同系统上用的JVM版本不同。

 

<4>     java语言环境的搭建

       JDK与JRE

              JRE JVM+java核心类库

              JDK JRE+java tools

              JDK的下载 : 

 **官网

                     ***www.oracle.com

                     ***java.sun.com

       JDK的安装

              **傻瓜式安装法 直接下一步即可;

              **注意问题:

                     ***目录不要带有中文或者空格。

                     ***jre可以不必要单独安装。

 

<5>     环境变量(重点)

 

       (1)path环境变量

              *Path 配置完环境变量后,windows能够自动根据path去找你在控制台中输入的命令。exe。

       (2)临时环境变量的配置

              *set:用于查看本机的所有环境变量的信息。

              *set 变量名 :查看具体一个环境变量的值。

              *set 变量名= :清空一个环境变量的值。

              *set 变量名=具体值:给指定变量定义具体值。

              *%% 动态引用变量的值

       (3)永久环境变量的配置

              *找到环境变量

                     **我的电脑--右键属性--高级--环境变量--系统变量

              *操作

                     **新建一个环境变量,格式如下

                            ***变量名 JAVA_HOME

                            ***变量值 JDK的安装目录。(例:C:\Program Files (x86)\Java\jdk1.7.0_15)

                     **编辑Path

                            ***变量名 Path

                            ***变量值 %JAVA_HOME%\bin;本身的环境变量值(启动dos后,输入java如果列出用法帮助,则设置成功。)

 

<6>     classpath环境变量的配置

 

       (1)path和classpath的区别

              *path变量是windows程序文件的目录 (exe,bat。)

              先在当前目录找,找不到就到path路径里找,如果还是找不到就会说,不是内部或外部命令,也不是可运行的程序或批处理文件

              *classpath变量值是java类文件的目录 (class结尾)

              如果配置了classpath分两种情况

              1,末尾加分号,先在classpath路径里找,如果找不到就会去当前目录去找,如果还是找不到报找不到或无法加载主类

              2,末尾不加分号,只在classpath路径找,找不到就直接报找不到或无法加载主类

       (2)classpath如何配置

              *临时配置

                     **set classpath=c:\my

              *注意:

                     **设置了classpath,只在classpath下找。

                     **没有设置classpath,就在当前目录下找。

                     **如果classpath结尾设置了; 那么它将首先在classpath下找,

                       如果找不到,再在当前目录下找。但是不建议这样用。

                     **.是代表当前路径,另外建议不要配置classpath路径

 

三 java基础语法

<1> 关键字

关键字就是被java语言赋予了特殊含义的单词,关键字的所有字母都是小写 goto和const虽然从未使用,但也作为Java 关键字保留,记住保留字也是不能当作标识符 java中是没有sizeof这个关键字的

 

              常见的关键字:

 

用于定义访问权限修饰符的关键字

 

private

protected

public

 

用于定义类,函数,变量修饰符的关键字

 

abstract

final

static

synchronized

 

用于定义类与类之间关系的关键字

 

extends

implements

 

用于定义建立实例及引用实例,判断实例的关键字

 

new

this

super

instanceof

 

用于异常处理的关键字

 

try

catch

finally

throw

throws

 

用于包的关键字

 

package

import

 

其他修饰符关键字

 

native

strictfp

transient

volatile

assert

用于定义数据类型的关键字

 

class

interface

byte

short

int

 

long

float

double

char

boolean

 

void

 

用于定义数据类型值的关键字

 

true

false

null

 

用于定义流程控制的关键字

 

if

else

switch

case

default

 

while

do

for

break

continue

 

return

 

 

<2> 标识符

(1)    Java 语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

                   简单说,就是起名字

 

(2)    命名规则

由26个英文字母大小写,数字0-9,_,$等组成。

           不能以数字开头。

           不能与java的关键字重名

 

         (3)命名规范 见名知意,驼峰命名。

                   包所有单词小写。

                            看成是一个文件夹。

                            www.itcast.cncn.itcast.包的作用 则该文件中所有的类位于cn/itcast/这个路径下

                            www.baidu.comcom/baidu/包的作用

(如果我们打算去哪个公司面试的话,可以先把公司的网站了解一下,然后把你的项目包名称改成公司网站的名称,这样会增加你面试的机会)

                   类和接口

                            如果是由一个单词组成,那么单词首字母大写。举例:Demo,Student。

                            如果是由多个单词组成,那么每个单词的首字母大写。举例:StudentDemo。

                   变量与方法

                            如果是由一个单词组成,那么单词所有字母小写。举例:main,show。

                            如果是由多个单词组成,第一个单词首字母小写,其后每个单词的首字母大写。举例:showName。

                   常量

                            如果是一个单词组成,那么所有单词全部大写。举例:MAX。

                            如果由多个单词组成,每个单词大写,并且以下划线相连接。举例:STUDENT_MAX_AGE。

<3> 注释

                   (1)注释是解释代码的,方便别人观看的。

                   (2)注释的分类

                                     单行注释 //   

                                     多行注释 /* */ 

                                     文档注释 /** */

                   (3)注释的用途

                                     注解说明文字。

                                     用于调试代码

 

<4> 常量

                   常量

(1)整数常量。所有整数

(2)小数常量。所有小数

(3)布尔型常量。较为特殊,只有两个数值。true false boolean

(4)字符常量。将一个数字字母或者符号用单引号('')标识。'中'

(5)字符串常量。将一个或者多个字符用双引号标识。 "abc""a" " "

(6)null常量。只有一个数值就是:null.

<5>变量

         (1)在程序的运行过程中,其值在指定范围内变化的值

         (2)是内存中一个区域,用于存储数据

         (3)变量的定义格式:

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

         (4)变量在使用的时候

                   A:第一种,在声明的时候,就初始化值

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

                            举例:byte b = 100; System.out.println(b);

                   B:第二种在使用前,赋值

                            声明

                            赋值

                            使用

                            举例 byte b2;

                                   b2 = 100; System.out.println(b2);

<6>进制

         (1)就是进位制,是人们规定的一种进位方法。对于任何一种进制--X进制,

            就表示某一位置上的数运算时是逢X进一位

         (2)java语言中整数的表现形式

                   A:八进制

                            **逢八进一

                            **所能表示的数据有:0-7

                            **用0开头表示

                  B:十进制

                            **逢十进一

                            **所能表示的数据有:0-9

                   C:十六进制

                            **逢十六进一

                            **所能表示的数据有:0-9,A-F(10-15)

                            **用0x或者0X开头表示

                   d:二进制

                            **逢二进一

                            **所能表示的数据有:0-1

                            **用0b表示这是1.7的新特性,可以直接求出二进制的对应的十进制值

         (3)进制的由来及特点。进制越大,表现形式越短

         (4)进制转换

                   A:其他到十进制的转换

                            **其他进制包含二进制,八进制,十六进制

                            **转换规则

                                     ***先把数据的每一位上的系数乘以对应基数的次幂(低位从从零开始),然后相加即可

                   B:十进制到其他进制的转换

                            **规则:除基取余,直到商为0,最后将余数反转

                            **十进制到二进制

                                     ***除2取余,直到商为0,最后将余数反转

                                     ***十进制13对应的二进制数据是1101

                                     ***二进制到十进制的技巧(8421码)

                            **十进制到八进制

                                     ***除8取余,直到商为0,最后将余数反转

                                     ***十进制13对应的把进制数据是15

                                    

                                     ***十进制--二进制--八进制

                                               ****首先把十进制转成二进制

                                               ****其次把二进制数据每三位组合。左边不够三位用0补位

                                               ****然后把每个组合计算成对应的十进制数据

                                               ****最后从左到右把数据相连接即可得到八进制

                            **十进制到十六进制

                                     ***除16取余,直到商为0,最后将余数反转

                                     ***十进制13对应的把进制数据是D

                                    

                                     ***十进制--二进制--十六进制

                                               ****首先把十进制转成二进制

                                               ****其次把二进制数据每四位组合。左边不够四位用0补位

                                               ****然后把每个组合计算成对应的十进制数据

                                               ****最后从左到右把数据相连接即可得到十六进制

<7> 数据类型

         (1)java语言分为两种数据类型

                   A:基本数据类型

                   B:引用数据类型(类,接口,数组)

 

         (2)基本数据类型

                   A:区别在内存中分配的空间大小不同,从而导致它表示的数据范围不同

                   B:4类8种

                            整数

                                     byte占1个字节

                                     short占2个字节

                                     int占4个字节

                                     long占8个字节 其后加L或l标识

                            浮点数

                                     float占4个字节 其后加F或f标识

                                     double占8个字节

                            字符

                                     char占2个字节

                            布尔型

                                     booleanThis data type represents one bit of information,

                                     butits "size" isn't something that's precisely defined.

                                     这个数据类型代表一个比特的信息,但它的“大小”不是精确定义的东西.

                                     true,false

                   C:默认情况下:

                            整数是int类型

                            浮点数是double类型

 

(3)    数据参与运算

 

A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则

                    容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:

                             byte,short,char->int->long->float->double

                             byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型

                    容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,

                      但可能造成精度降低或溢出;使用时要格外注意。

                    有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,

                      然后再进行计算。

           B:强制转换符

                    格式:(数据类型)(要被转换的数据) byte b = (byte)(130);

           C:字符型参与运算

                    首先会去找对应字符的ASCII码值。然后运算。

                    char 类型内容补充取值范围0~2(16)-1,我就有了一个问题?能不能把整数直接赋值给char类型的变量

           D:布尔型参与运算

                    不能参与运算

           E:字符串参与运算

                    它是和参与运算的数据相连接组成了一个新的字符串。

                    因为有了这个特性,所以我们求出了我们名字的字符值就可以在内存中这样输出

                    如我的姓:  System.out.println('\u66F9');

<8> 运算符

                   (1)算术运算符 +,-,*,/,%,++,--

                   A:%

                            **当左边的绝对值小于右边:结果是左边

                            **当左边的绝对值等于右边或者是右边倍数的时候:结果是0

                            **当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号

                            **取余的正负号取决于左边,右边忽略不嫁

                            **用途:任意数%2 结果是要么0,要么1。用于切换条件

                   B:++,--

                            **递增,递减运算符。就是加1或者减1

                            **单独存在,放在操作数的前面或者后面,结果一样

                            **参与运算时:

                                     ***放在操作数的前面,先自身加或者减1,然后再参与运算

                                     ***放在操作数的后面,先参与运算,然后再自身加或者减1

                   C:+

                            **作为数据的符号(正号)

                            **做加法运算

                            **字符串连接符

 

         (2)赋值运算符

                   A:=:赋值运算符 把右边的值赋给左边

                            **举例:int x = 3; 把3赋给int类型变量x

                   B:+=:加赋值运算符 把左边和右边的和赋给左边

                            **举例:int x = 3; x+=2;等同于 x = x + 2;

                            **问个问题 byte b = 5;

                                       b += 127;

                                                  System.out.println(b);会不会报错?

                            **+=运算符在给s赋值时,自动完成了强转操作。

 

         (3)比较运算符

                   A:==,!=,>,<,>=,<=

                   B:比较运算符的结果都是boolean型,也就是要么是true,要么是false。

 

         (4)逻辑运算符

                   /*

                   逻辑与运算符 &

                  

                   第一个条件    第二个条件     结果

                   true          true            true

                   false         true           false

                   true          false          false

                   false         false          false

 

                   简单记:同时为true,结果为true。

                   */

 

                   /*

                   逻辑或运算符 |

                  

                   第一个条件    第二个条件     结果

                   true          true            true

                   false         true           true

                   true          false          true

                   false         false          false

 

                   简单记:同时为false,结果为false。

                   */

 

                   /*

                   逻辑异或运算符 ^

                  

                   第一个条件    第二个条件     结果

                   true          true                          false

                   false         true           true

                   true          false          true

                   false         false          false

 

                   简单记:同时为同一种情况,结果为false。

                   */

 

                   /*

                   逻辑非运算符 !

                  

                   !true  false

                   !falsetrue

                 !!true true

                   */

 

                   /*

                   短路与:

 

                   &:左边无论什么结果,右边都执行。

                   &&:左边为false,右边不执行,结果为false。

 

 

                   短路或:

                   |:左边无论什么结果,右边都执行。

                   ||:左边为true,右边不执行,结果为true。

                   */

 

         (5)位运算符

                   <<一个数向左移动几位就乘以2的几次幂

                   >>一个数向右移动几位就除以2的几次幂

                   >>>无符号右移无论最高位的符号位是0还是1,用无符号右移后高位符号位都是补0

 

         (6)三元运算符

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

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

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

                   B:条件运算符运算完之后一定有一个结果


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