黑马程序员——Java学习笔记之①——“Java编程基础”



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


1、Java虚拟机(JVM :  Java Virtual Machine)

      JRE: Java运行时环境(Java Runtime Environment)

      JDK: Java开发工具包(Java Development Kit)


2、dos窗口常见操作命令:

dir:列出当前目录中的所有文件(包括文件夹)

md:创建目录rd:删除空目录

cd/:返回根目录cd..:返回上一级目录cd (+directory):进入指定目录

echo:创建文件del:删除文件,也可用作删除一个文件夹下面的所有文件

exit:退出dos命令窗口cls:清屏


3、在dos窗口中配置临时系统变量:

使用set path可查看当前的系统变量

使用set path + directory 可配置临时系统变量,如果只是需要在原有设置接触上再添加路径可用set path = newDirectory;%path%即可


4,、在dos窗口中配置临时环境变量:

set classpath = c:\ ;如果加上“ ; ” 的话,如果在环境变量配置路径中无法查找到文件,则会在当前目录下再找一次,即先查找环境变量,在查找当前目录。

而在设置path路径时,在路径末尾加上“ ; ”的话,查找顺序则刚好相反。


5、Java中元素命名规则:

包名:通常要求组成单词全小写:xxxyyyzzz

类名、接口名:通常由多个单词构成,且每个单词首字母都要大写:XxxYyyZzz

变量名、函数名:通常要求第一个单词所有字母小写,从第二个单词开始,每个单词首字母都大写:xxxYyyZzz

常量名:通常要求所有字母都大写:XXXYYYZZZ ,多个单词通常用“_”隔开


6、Java中基本数据类型:(由于博客保存不了格式,显得杂乱,只好从记事本里整好后上传图片了)


7、逻辑运算符:用来连接boolean类型的表达式

&:AND 与|:OR 或!:Not 非^:XOR 异或(“相同为假,不同为真”)(一个数a异或另一个数b两次,结果仍然是那个数a)

&&:AND 短路,如果&&左边的逻辑表达式为false,则不需要判断右边的,整个表达式结果为false

||:OR 短路,如果||左边的逻辑表达式为true,则不需要判断右边的,整个表达式结果为true


8、两个整数a,b进行逻辑运算,其实质都是现将a,b转化成2进制形式,在对对应的位进行相关的逻辑运算,最后得出结果。


9、三元运算符可以简化if...esle代码,但是既然是运算符,运算完就一定要有一个结果,而if...else则可以不需要结果。


10、对for循环,如果没有条件表达式,则此循环的条件默认为真,进行无限循环,形式为:for(;;){ },功能和while(true){ } 相同。


11、break的应用范围:循环结构或选择结构(switch)中,用于直接跳出循环。

continue的应用范围:循环结构中,用于跳过此次循环,继续进行下一次循环。


12、static型函数只能调用static型函数,因为static是随着类的加载而加载的,在调用static型函数时,其所属的类的对象可以不存在。


13、函数的重载只与参数列表中参数的个数,参数类型和参数顺序有关,与函数返回值类型无关。

如果两个函数的参数列表完全相同,但函数返回值不同,那么这两个函数明显就不能存在于同一个类中,切记。


14、内存结构:

栈内存区:存储局部变量,空间中数据使用完后会自动释放

堆内存区:存储用new建立的实例对象,每个实体都有堆内存地址值,实体中的变量都有默认初始值,实体不再使用时,会在不确定的时间内被垃圾回收器回收。

方法区:本地方法区,寄存器


15、没有初始化的引用数据类型其默认初始值为null。


16、switch语句格式(本人曾经用错,记下备用):

switch(int x)// 只接受 :byte(取值范围:-128~127)  short int char 四种基本数据类型,外加enum引用数据类型。

{

case 1 :  .............................;  break;

case 2 :  .............................;  break;

............................................................

default:  ..............................;//这里的break可以省略,因为default总是最后执行的,当然也可能执行不到它.

                                              //default语句在switch中顺序可以变,但执行顺序不会变。

}


17、将一个十进制数num转换为16进制数

方法1:每次通过&15操作,获取num的二进制形式的最低4位,将通过 (char)num-10+‘A’的操作将其转换成十六进制形式,然后将num的二进制形式右移4位,并在此获取最低4位,转换成十六进制形式,如此往复即可。

(同理:将num转换为8进制形式的操作为:&7,然后右移3位,再&7,如此往复)

(同理:将num转换为2进制形式的操作为:&1,然后右移1位,再&1,如此往复)


方法2:在每次获取num最低4位后,通过查表发将其转换为十六进制形式。

(查表法同样适用于8进制转换和2进制转换操作)


方法3:利用系统提供的封装数据类型的函数实现:Integer.toBinaryString();Integer.toHexString();Integer.toOctalString();

注:在方法1和方法2中如果要打印转换后的数,需要定义一个Stringbuilder(StringBuffer也可,一般单线程程序中推荐StringBuider),

用append方法将转换后的每一位存在缓冲区里,最后它的reverse()函数将得到的转换数的正常顺序序列。

也可定义一个数组,从数组末尾开始存放每一位,输出时按正常顺序输出数组即可。


18、交换内存中两个整型变量的位置的方法:

方法1:设置一个中间变量temp,然后。。。。。。(示例如下:)


方法2:利用两数之和不变的规律,然后。。。。。


方法3:利用一个数异或另一个数两次,结果仍然是这个数的原理,然后。。。。。



19、在进行取模运算(&)时,如果左边小于右边,则结果为左边;如果左边等于右边则结果为0;

         如果有负数,则总是看被取模数


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

例如:System.out.println("1"+2); //输出结果为“12”


21、System.out.println(‘A’+0); 利用了自动类型提升的技巧,输出了字符A对应的ASCII码


22、下面这段代码很好的诠释了for循环的各个部分的执行顺序。执行结果为:adcdc

int x = 1;
for(System.out.println('a'); x<3 ;System.out.println('c');)
{
System.out.println('d');
x++;
}


23、for循环与while循环中循环变量的定义

当定义一个变量仅仅是用于循环技术的话,用for循环比较好。因为,for循环中用于计数的变量随着for循环的结束会从内存中消失,

不会占用内存空间,这在一定程度上可视为一种小优化!


24、几种常见的排序方式:(默认从小到大排序)

冒泡排序:

bubbleSort(int[ ] arr)

{

for(int x=0; x<arr.length-1; x++)

for(int y=0; y<arr.length-x-1; y++)

{

if( arr[y] > arr[y+1] )

swap(arr[y] , arr[y+1);//交换两个数的位置

}

}


选择排序:

SelectSort(int[ ] arr)

{

for( int x=0; x<arr.length-1; x++)

for( int y=x+1; y<arr.length; y++)

{

if( arr[x] > arr[y] )

swap( arr[x] , arr[y] );

}

}

25、在求一个数组中最大值的时候不要将最大值max设为0,因为可能数组中的元素都小于0,这时结果会出错。最好设置一个最大值的数组指针,默认置为0,代表设置目前数组中最大值为第一个元素,然后每次将max跟数组中元素比较后,都将较大值的角标赋给指针,这样就会得到正确的结果。

示例如下:



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




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值