黑马程序员——Java 常识

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

基础常识

dos命令行中常见的命令

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

md :创建目录

rd :删除目录

cd :进入指定目录

cd.. :退回到上一级目录

cd/ :退回到根目录

del :删除文件

exit :推出dos命令行


Java语言的特点:跨平台性

        Java实现跨平台的原因是:Java虚拟机(JVM JavaVirtual Machine)的存在,它负责Java程序在系统中的运行,针对不同的操作系统有不同的版本,只要在需要运行系统上先安装相应的JVM即可。

JRE(Java运行环境)JDK(Java开发工具包)

        JRE包括Java虚拟机(JVM)和Java程序所需的核心类库(运行工具)等。运行一个开发好的Java程序,只需要安装JRE即可

        JDK包含java的开发工具,JRE。是提供给Java开发人员使用的。

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


变量配置

path变量是windows程序文件的目录

特点:

1)如果没有配置path环境变量, JVM只在当前目录下查找要运行的文件。

2)如果配置了path环境变量, JVM会先在当前目录下查找,再在path环境变量值的目录中查找。

 

classpath变量值是java类文件的目录

特点:

1)如果没有配置classpath环境变量, JVM只在当前目录下查找要运行的类文件。

2)如果配置了classpath环境变量, JVM会先在classpath环境变量值的目录中查找,再在当前目录下查找要运行的类文件。


配置classpath环境变量;加与不加的区别:

1)值的结尾处如果加上分号,那么JVMclasspath目录下没有找到要指定的类文件,会在当前目录下在查找一次。

2)值的结尾出如果没有分号,那么JVMclasspath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。

建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用.”表示。


注释

注释的类型:单行注释//,多行注释/* */,文档注释/** */

注释的作用:(1)注解说明解释代码,(2)调试程序

单行注释中可以有单行注释;多行注释中可以有单行注释;多行注释中不可以有多行注释。


标识符

26个英文字母大小写,数字:0-9符号: _ $组成。严格区分大小写。

规则:

1,数字不可以开头。

2,不可以使用关键字。

 

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

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

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

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


进制

八进制,用0开头表示;十六进制,用0x开头表示。

十进制转二进制除以2取余数;二进制转十进制乘以2的幂数。

四个二进制位代表一个十六进制位;三个二进制位代表一个八进制位。

负数的二进制:对应的正数二进制取反+1。负数的最高位都是1.


数据类型

基本数据类型:数值型(整数类型,浮点类型float double),字符型char,布尔型boolean

整数类型:byte(8个二进制位:-128~127),short(16个二进制位),int(32个二进制位),long()

引用数据类型:类class,接口interface,数组[]

小数默认情况下是double注:float f=2.3f

 

运算符


算术运算符

b=a++;a先赋值给b再自增。

b=++a;a先自增,再赋值给b。

总之,不管加号在前 还是后,a都自增。

字符串数据与任何数据使用+都是相连接,最终都会变成字符串。


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

\n:换行。

\b:退格。相当于Backspace

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

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


赋值运算符

short s=3;

s=s+5;     编译失败,因为s会被提升为int类型,运算后结果还是int类型。无法赋值给short类型。

s+=5;       编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。


比较运算符

instanceof       检查是否是类的对象。


逻辑运算符

&&&的特点:

&:两边都参与运行。

&&:当左边为false时,右边不运行。


|||的特点:

|:两边都参与运行。

||:当左边为true时,右边不运行。


位运算符

6个运算符:<<左移   >>右移   >>>无符号右移   &与运算   |或运算   ^异或运算   ~反码


<<左移             空位补0,被移除的高位丢弃,空缺位补0

                 相当于乘以2的倍数;移n位,就是乘以2n次幂。


>>右移             被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1

                 相当于除以2的倍数;移n位,就是除以2n次幂。


>>>无符号右移  被移位二进制最高位无论是0或者是1,空缺位都用0补。


&与运算           二进制位进行&运算,只有1&1时结果是1,否则是0;


|或运算              二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;


^异或运算        任何相同二进制位进行 ^ 运算,结果是0 1^1=0 , 0^0=0

                  不相同二进制位 ^运算结果是1 1^0=1 , 0^1=1


~反码                 二进制取反,10,01

 

&的规律:有假则假;|的规律:有真则真;  ^的规律:同假异假(真--1,假--0


异或的应用


一个数异或同一个数两次,结果还是原数。(如a^b^b=a

该方法可用于加密或换位!


三元运算符

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

   true返回表达式1false返回表达式2

好处:简化if else代码;

弊端:因是运算符,故运算完必须要有一个结果。


ifswitch的区别

判断的具体数值不多,且符合byteshort int char四种类型,建议使用switch语句(效率稍高)。

对于区间或结果为boolean类型使用if语句(使用范围广)


whiledo while的区别

while语句先判断条件,只有条件满足才执行循环体。

do while语句先执行循环体,再判断条件,条件满足,再继续执行循环体。

简单的说,do while:无论条件是否满足,循环体至少执行一次。


forwhile的区别

对于变量来讲,如果该变量仅仅用于控制变量的循环次数,只作为循环增量存在,用for(优化内存);

变量有自己的作用域。

for(int y=0;y<3;y++)
{ 

} 
//以上写成这种

int y=0;
for( ;y<3; )
{
 y++; 
}     //   也对,但是这种直接写while 即可。

无线循环的最简单表现形式

for( ; ; ){ }对于for不写条件表达式默认为true

while(true){ }


for循环嵌套

外循环控制行数,内循环控制每一行的列数

两个for++时的一般规律

尖朝上,可改变条件,让条件随着外循环变化;

尖朝下,可以改变初始化值,让初始化随着外循环变化。


breakcontinue的特点

break语句:应用于选择结构和循环结构

continue语句:应用于循环结构

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

此标号的出现可以让这两个语句作用于指定范围。


函数与数组


函数的格式

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

{

执行语句;

return返回值;

}


如何定义函数?

  1. 因为函数是一个独立的功能,所以先明确该功能的运算结果是什么;       (明确函数的返回值类型)

  2. 在明确定义功能的过程中是否需要未知数的内容参与运算.    (明确函数的参数列表)


函数的重载

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

特点:与返回值类型无关,只看参数列表。


数组

同一种类型数据的集合,其实数组就是一个容器。

格式1

元素类型[]数组名 =new 元素类型[元素个数或数组长度];
示例: int[] arr = new int[5];

格式2

元素类型[]数组名 = new元素类型[]{元素,元素,……};

Int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};


排序

选择排序

        内循环结束一次,最值出现头角标位置上。


冒泡排序        (相邻两个元素进行比较,若符合条件换位。)

        -x:让每次比较的元素减少;     -1:避免角标越界。

        内循环结束一次,最值出现最后角标位置上。


Arrays.sort(arr);开发时的排序方法。


查找

        获取key第一次出现在数组中的位置。如果返回是-1,那么代表该key在数组中不存在。


折半查找

        提高了效率,但必须要保证该数组是有序的


二维数组       数组中的数组

格式1:     int[][] arr = new int[3][2];

二维数组中有3个一维数组,每一个一维数组中有2个元素

一维数组的名称分别为arr[0], arr[1], arr[2]

:arr[0][1] = 78; 给第一个一维数组1脚标位赋值为78


格式2   int[][]arr = new int[3][];

二维数组中有3个一维数组,每个一维数组都是默认初始化值null

可以对这个3个一维数组分别进行初始化

: arr[0] = new int[3];

arr[1] = new int[1];

arr[2] = new int[2];


 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值