欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

黑马程序员_基础知识,黑马程序员基础知识

来源: javaer 分享于  点击 44367 次 点评:257

黑马程序员_基础知识,黑马程序员基础知识


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

Java基础

java概述: 1991 年Sun公司的JamesGosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器; 1994年将Oak语言更名为Java;

 Java的三种技术架构:  JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础; JAVAME:JavaPlatform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;  

1,JDK:JavaDevelopment Kit,java的开发和运行环境,java的开发工具和jre。 

2,JRE:JavaRuntime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。

 3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。 环境变量的配置:    

1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk path=%JAVA_HOME%\bin 

2)2):临时配置方式:set path=%path%;C:\ProgramFiles\Java\jdk\bin  特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。  classpath的配置:     1):永久配置方式:classpath=.;c:\;e:\  2):临时配置方式:setclasspath=.;c:\;e:\   注意:在定义classpath环境变量时,需要注意的情况  如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件; 如果指定了classpath,那么会在指定的目录下查找要运行的类文件。 还会在当前目录找吗?两种情况:  1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。  2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。  一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。  

Java语言的几个主要特点?

平台无关性:能运行于不同的平台上

安全性:去掉了指针操作,内存由操作系统分配

面向对象:利用类使程序更加利于维护

分布式:可以使用网络文件和使用本机文件一样容易

健壮性:检查程序编译和运行的错误

Java的三大核心机制

虚拟机机制:利用虚拟机解释字节码执行java程序实现跨平台

垃圾收集机制:自动内存回收

代码安全性机制:加载代码后校验代码后再执行代码

 

(JRE   java运行环境):包括java虚拟机和java程序所需的核心类库,主要功能是运行程序

(JDK java开发工具包)包括java的开发工具和JRE

Dos命令行:

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

2)md创建目录

3)rd删除目录

4)cd进入指定目录

5)cd..退出到上一级目录

6)cd\退到根目录

7)del删除文件

8)exit退出都是、命令行

环境配置:path:应用程序所在的路径   路径分隔符“;”

Classpath:

可以编写Java程序的常见开发工具?

记事本,EditPlus,ULTRAEDIT,Eclipse,Jbuilder,NetBeans

 

Java文件的类型?

有两种:

扩展名为java的文件:是Java源文件,属于编译之前的纯文本文件,存储java源代码。

扩展名为class的文件:是Java类文件,属于编译之后的二进制文件,存储字节码。

Java的编译运行原理?

       首先编写java源文件,然后编译成class类文件,然后通过虚拟机解释成机器码到硬件执行。

Java是编译型语言还是解释型的语言?

既不是完全编译型,也不是完全解释型,是半编译半解释的。

Java语言基础组成:关键字、标识符、注释、常量变量、运算符、语句、函数、数组

关键字:

     定义:被Java语言赋予了特殊含义的单词

     特点:关键字中所有字母都为小写

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

    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

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

     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                  

         标识符:有字母和数字下划线_和美元符号$

 

规则:数字不可以开头

     不可以使用关键字

常量:不能改变的数值。

变量:内存中的一个存储区域

定义变量的原因:用来不断的存放一类型的常量,并可以重复使用

变量注意事项:1)变量在使用时必须初始化值

              2)必须有自己的变量域

注释:

             Java中的注释格式:

             单行注释  格式: //注释文字

             多行注释  格式: /*  注释文字  */

             文档注释  格式:/** 注释文字 */

数据类型:基本数据类型也成为原生数据类型包括数值型(整形 byte、short、int、long)浮点型(float、double)字符型(char)布尔型(boolean)和引用类型(类、接口、数组)

注意:整数默认为int小数默认为double

1) 整型:使用int表示。(32位)

2) 字节型:使用byte表示。(表示-128~127之间的256个整数, 8位)。

3)短整型:使用short表示。(16位)

4)长整型:使用long表示。(64位)

5)单精度浮点型:使用float表示。所谓浮点型,指的就是小数,也叫做实数,比如1.2。

6)双精度浮点型:使用double表示。双精度浮点型表示的数据范围要比单精度浮点型大。

7)字符型:使用char表示(char是character的缩写)。所谓字符,就是单个的字符表示,比如字母a,或者中文张,外面用单引号包围上。比如char a = ‘B’; char b = ‘张’;

8)布尔类型,使用boolean表示。布尔类型只有两种可能值,分别是true与false。

2. Java中的所有浮点类型默认情况下都是double。不能将double类型的值赋给float类型的变量,即便该double类型的值处于float类型的范围内也是不可以的。总之,能否成功赋值取决于等号右边的值类型与等号左边的变量类型是否一致。

3. 如何将double类型的值赋给float类型的变量?答案就是(1)强制类型转换,将double类型的值强制转换为float类型。(2)使用java预言的支持。

 

强制转换的语法: 类型 变量名 = (类型)变量值;

4. 变量在使用前必须要赋值;变量必须要声明其类型方可使用;变量在使用前必须要定义,并且只能定义一次。

5. 如下代码无法通过编译:

 

int a = 1;

short b =a;

a是int类型,b是short类型,int类型表示的数据范围要比short类型大,不能将表示范围大的值赋给表示范围小的变量。

6. 如下代码可以通过编译:

 

short a =1;

int b = a;

a是short类型,b是int类型,int类型表示的数据范围要比short类型大,可以将表示范围小的值赋给表示范围大的变量。

运算符号: 1)、算术运算符。

+ - * / %   %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。  

+:连接符。  ++,-- 

       2)、赋值运算符。    =  += -= *= /= %=

       3)比较运算符。   特点:该运算符的特点是:运算完的结果,要么是true,要么是false。 

            4)、逻辑运算符。   &  |  ^ !   &&   ||    逻辑运算符除了 !  外都是用于连接两个

                              boolean类型表达式。   &: 只有两边都为true结果是true。否则就是false。 

                             |:只要两边都为false结果是false,否则就是true   ^:异或:和或有点不一样。

                             两边结果一样,就为false。    两边结果不一样,就为true.    & 和 &&

                             区别: & :无论左边结果是什么,右边都参与运算。         &&:短路

                             与,如果左边为false,那么右边不参数与运算。   | 和|| 区别:|:两边

                              都运算。||:短路或,如果左边为true,那么右边不参与运算。

          5)、位运算符:用于操作二进制位的运算符。  &  |  ^    <<  >>   >>>(无符号右移)    总结:可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现

常见的转义字符有哪些?

转义序列

名称

\b

退格

\t

制表

\n

换行

\r

回车

\”

双引号

\’

单引号

\\

反斜杠

1)       与或非三个逻辑运算符的优先级是怎么排列的?

“非”优先级最高,“与”其次,“或”优先级最低

 

2)       原码,反码,补码分别是什么意思?

l  原码:将数字转换为二进制,第一位为符号位,正数为0,负数为1

例如:12的原码是00001100 -12的原码是10001100

l  反码:正数的反码和原码相同,负数的反码将原码符号位之外的位逐位取反

例如:12的反码是00001100 -12的反码是11110011

l  补码:正数的补码和原码相同,负数的补码将反码加1

例如:12的补码是00001100 -12的补码是11110100

最后强调一点,计算机存储数据用补码形式来存储。

 

3)       位运算符都有哪些?

&与 |或 ^异或 ~非 >>右移<<左移 >>>无符号右移

 

4)       1<<35怎么理解?

1是int类型是32位,所以需要把35%32=3,所以事实上是和执行1<<3等价的

 

 

 

程序流程控制:判断、选择、循环

1)if(条件表达式)      if(条件表达式)                      if(条件表达式)

                                                                 {执行语句;}

{                            {                              else if(表达式)

      执行语句;                   执行语句;                       {执行语句;}

}                             }                             ………..

                     Else                                   else

                                                             {}

                            {执行语句}

局部代码块:可以定义局部变量的生命周期。

Switch(byte、short、int、char)

If与switch的应用:if:对具体的值进行判断,对区间判断,对运算结果是boolean类型的表达式进行判断

                  Switch:对具体值进行判断,值的个数固定。

Switch与if区别:switch语句将具体的答案都加载进内存,效率较高。

2)while(条件表达式)do 

       {执行语句;}     {执行语句

}while(条件表达式)

Do while对的特点:

是否条件满足,循环体至少执行一次

For和while特点:

1for和while可互换。

2格式不同

无限循环格式while(true){}    for(;;)

Break(跳出)和continue(继续)语句,

Break应用范围:选择结构和循环结构

Continue:应用于循环结构。

注意:两个离开应用范围,存在就没什么意义

这两个语句单独存在下面都不可以,因为执行不到

Continue结束本次循环继续下一次循环

函数

什么是函数:在类中具有特定功能的一段独立的小程序

修饰符 返回类型 函数名(参数类型 形式参数1,参数类型 形式参数2,参数类型 形式参数3,…….)

     {

      执行语句;

    Return 返回值;

}

特殊情况:功能没有返回值,返回类型用void关键字修饰。

函数特点:将特定的功能进行封装,便于对功能的重复使用,提高了代码的复用性,

注意:函数只能调用函数,不能在函数内部定义函数。

函数定义的两个明确:

1)确定返回类型

2)确定函数的参数列表

重载:在同一个类中,允许有一个以上的同名函数,只是他们的参数个数或参数类型不同。

重载的特点:与返回值无关,只看参数列表

重载额好处:方便阅读,优化程序。

数组;

定义:同一类型数据的集合。

数组的好处:可以自动的给数组中的元素从0开始进行编号,方便操作元素。

格式:

1)元素类型 [ ] 数组名=new 元素类型[元素个数或长度]

2)元素类型 [ ]数组名= new 元素类型[ ] {元素1,元素2,、、、、、、}

内存的划分:

1)寄存器:cpu处理

2)本地方法区:所在系统有关的,运行本地系统

3)方法区:

4)栈内存:存储的是局部变量(凡是定义在方法中的变量都是)变量所属的作用域一旦结束,该变量就会自动释放。

5)堆内存:存储的是数组(数组就是对象)和对象,凡是new建立的都在堆中(堆中不会随时释放的)

         特点:每个实体都有首地址值

             堆内存中的每个变量都有默认的初始值,根据类型不同而不同,整数是0,小数是0.0或0.0f,boolean是flase和true,char是’\u0000’

              垃圾回收机制。

数组排序一般都用到两个数值的交换,

正确:publicstaticvoid swap(int []array,int  i,int  y)//数组元素交换

    {

       int temp=array[y];

      temp=array[y];

      array[y]=array[i];

      array[i]=temp;

       

        

   }

错误:publicstaticvoid swap( int  i,int  y)//应用于数值的交换

    {

       int temp=y;

      temp=y;

      y=i;

      i=temp;

       

        

    }

应明确对那个数组进行交换数值

总结:

Java是跨平台的语言,真正执行的不是二进制代码,而是字节码。JVM(JavaVirtual Machine,Java虚拟机)Java是跨平台的,而JVM不是跨平台的(JVM是由C语言编写的)Java之所以能够做到跨平台,本质原因在于JVM不是跨平台的。Java语言基础组成关键字 标识符 注释 常量和变量 运算符 语句 函数 数组值得注意的变量在使用时必须初始化值必须有自己的变量域,而对于原生数据类型需要注意的是整数默认为int小数默认为double,可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现,而对于函数函数只能调用函数,不能在函数内部定义函数。

心得:对于java基础应认真学习其中的每一个细节,包括注释等等只有认真学习才能牢牢的记住每一个知识点,而对于有一定C语言C++语言基础的我来说不能把只是学杂了混淆了,同时在这几天的学习中我认为java的学习要比C语言的学习有乐趣再加上毕老师的幽默讲解,让我在学习的过程中有一种满足感这就需要在学习的过程中应摆正态度,有一种不怕苦的学习精神。

                    

 



相关文章

    暂无相关文章
相关栏目:

用户点评