黑马程序员_Java基础知识

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

一、Java环境的配置:
1、path: 用来指定java虚拟机(JVM)所在在目录,也就是我们最常用的用来编译java源程序的javac.exe和用来执行 *.class文件的 java.exe 这两个命令。
2、classpath:用来指定我们自己所写的或要用到的类文件(.jar文件)所在的目录
3、临时配置方式:(通过dos命令中set命令完成)
1)set :用于查看本机的所有环境变量的信息
2)set 变量名:查看具体一个环境变量的值。
3)set 变量名=:清空一个环境变量的值。
4)set 变量名=具体值:给指定变量定义具体值。
注意:这种配置方式只在当前dos窗口有效。窗口关闭,配置消失。

二、Java中的标示符以及命名规范:
1、由26个英文字母大小写,数字:0-9 符号:_ $ 组成
2、定义合法标识符规则:
       1)数字不可以开头。
       2)不可以使用关键字。
注意:Java中严格区分大小写

三、Java中的注释格式:
1、单行注释格式://注释文字
2、多行注释格式:/* 注释文字*/
3、文档注释格式:/** 注释文字*/ 

四、Java中的常量:
1、整数常量:所有整数
2、小数常量:所有小数
3、布尔型常量:只有两个数值--->true | false
4、字符常量:将一个数字字母或者符号用单引号( ' ' )标识
5、字符串常量:将一个或者多个字符用双引号标识
6、null常量:只有一个数值就是---->null,表示空,什么都没有
7、对于整数:java有三种表现形式。
1)十进制:0-9 ,满10进1.
2)八进制:0-7 ,满8进1. 用0开头表示。
3)十六进制:0-9,A-F,满16进1. 用0x开头表示。
       
五、进制的转换:
1、 十进制二进制互转
1)十进制转成二进制除以2取余数
2)二进制转成十进制乘以2的幂数
2、十进制八进制互转:将十进制转成二进制,每三位作为一个值
3、十进制十六进制互转:将十进制转成二进制,每四位作为一个值
4、负数的二进制表现形式:对应的正数二进制取反加1

六、数据类型:
1、基本数据类型
2、引用数据类型
3、基本数据类型(8种):
1)整数类型:byte,short,int,long
2)浮点类型:float,double
3)字符型:char
4)布尔型:boolean
4、引用数据类型:
1)类:class
2)接口:interface
3)数组:[ ]
5、表达式的数据类型自动提升:
1)所有的byte型、short型和char的值将被提升到int型
2)如果一个操作数是long型,计算结果就是long型
3)如果一个操作数是float型,计算结果就是float型
4)如果一个操作数是double型,计算结果就是double型
例如:
1)自动类型提升
byte b = 5;
int x =6;
x = x + b;//b会自动提升为int类型进行运算
2)强制类型转换
byte b = 6;
b = b + 5;//报错
b = (byte)b+5;//强制类型转换,强制将b+4的结果转换为byte类型,再赋值给b

七、逻辑运算符用于连接boolean类型的表达式:
1、&(与){左右都运算},!(非),|(或){左右都运算}
2、^(异或){真真为假,假假为假;两边相同为假,两边不同加过为真}
3、&&(短路){左边为假右边不再运算},||(短路){左边为真右边不再运算}
4、位运算符:<<左移    >>右移   >>>无符号右移   &与运算    |或运算    ^异或运算
5、~反码     用于二进制运算的运算符号

 

基本数据类型转成字符串: 
       基本数据类型+""
        基本数据类型.toString(基本数据类型值);
        如: Integer.toString(34);//将34整数变成"34";

字符串转成基本数据类型:
        xxx a = Xxx.parseXxx(String); 
        int a = Integer.parseInt("123");
        double b = Double.parseDouble("12.23");
        boolean b = Boolean.parseBoolean("true");
        Integer i = new Integer("123");
        int num = i.intValue();

十进制转成其他进制:
       toBinaryString();
        toHexString();
        toOctalString();

其他进制转成十进制:
       parseInt(string,radix);

四种访问修饰符作用域:

Private:类内√ 同程序集派生类× 同程序集其他类× 不同程序集派生类× 不同程序集其他类×
Protected: 类内√ 同程序集派生类√ 同程序集其他类× 不同程序集派生类√ 不同程序集其他类×
Internal:类内√ 同程序集派生类√ 同程序集其他类√ 不同程序集派生类× 不同程序集其他类×
Public:类内√ 同程序集派生类√ 同程序集其他类√ 不同程序集派生类√ 不同程序集其他类√


 

 常用运算符介绍:

算术: + - * / % += -= *= /= %=

比较:> >= < <= == !=

逻辑:&& || !

单目:++ --  (++在前先自增再赋值给变量,++在后先赋值给变量再自增

双目: :

三目:?:

优先级:[ ] ( ) ++ -- ! ~ instanceof * / % + - << >> >>> <> < = > \ == != &^& & || ? := op= 

三元运算符,好处是可以简化if else 代码,弊端是一个运算符,所以运算完必须要有一个结果。

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


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

\n换行,\b退格(相当于backspace),\r按下回来键,window系统,回来符是由两个字符来表示\r\n.

\t制表符。相当于tab键


逻辑运算符:

& : 只要两边的boolean表达式结果,有一个为false。那么结果就是false。
                              只有两边都为true,结果为true。

| : 两边只要有一个为true,结果为true。
                              只有两边都有false,结果为false。

^ : 异或;就是和|有点不一样。当true ^ true = false;
                 true ^ true = false;
                 true ^ false = true;
                 false ^ true = true;
                 false ^ false = false;
                 两边相同结果是false。
                 两边不同结果是true。
&:无论左边是true是false。右边都运算。
&&:当左边为false时,右边不运算。
|:两边都参与运算。
||:当左边为true。右边不运算。

 



八、程序流程控制:
1、判断结构:if语句
注意:if else简写格式  :变量=(条件表达式)?表达式1:表达式2;---------->三元表达式,结果为真运行表示式1,为假运行表达式2
2、选择结构:switch语句
       注意:1)switch语句选择的类型只有四种:byte,short,int ,char。
    2)case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
             3)结束switch语句的两种情况:遇到break,执行到switch语句结束。
             4)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
3、循环结构:while,do while,for
  1. for(初始化表达式;循环条件表达式;循环后的操作表达式)  
  2.     {  
  3.         执行语句;  
  4.     }  
for(初始化表达式;循环条件表达式;循环后的操作表达式)
	{
		执行语句;
	}
注:for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件, 
为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件, 
重复找个过程,直到条件不满足为止。
break语句:应用于选择结构和循环结构。
continue语句:应用于循环结构。

九、函数
1、函数就是定义在类中的具有特定功能的一段独立小程序。也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型形式参数1,参数类型形式参数2,...)
{
执行语句;
return 返回值;
}
2、函数的特点:
1)定义函数可以将功能代码进行封装
2)便于对该功能进行复用
3)函数只有被调用才会被执行
4)函数的出现提高了代码的复用性
5)对于函数没有具体返回值的情况,返回值类型用关键 字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
注意:
1)函数中只能调用函数,不可以在函数内部定义函数。
2)定义函数时,函数的结果应该返回给调用者,交由调用者处理。
两个明确:
1)明确要定义的功能最后的结果是什么
2)明确在定义该功能的过程中,是否需要未知内容参与运算
3、函数的重载:overload
重载的概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可
重载的特点:与返回值类型无关,只看参数列表
重载的好处:方便阅读,优化了程序设计

十:数组
1、同一种类型数据的集合,其数组就是一个容器!
注:数组从0开始编号!
格式:
1)元素类型[] 数组名= new 元素类型[元素个数或数组长度]------->int[] arr = new int[5]
2)元素类型[] 数组名= new 元素类型[]{元素,元素,……}------->int[] arr = new int[]{3,5,1,7};int[] arr = {3,5,1,7};
2、栈内存:
用于存储局部变量,当数据使用完,所占空间会自动释放。
堆内存:
数组和对象,通过new建立的实例都存放在堆内存中。
每一个实体都有内存地址值
实体中的变量都有默认初始化值
实体不在被使用,会在不确定的时间内被垃圾回收器回收
方法区:
本地方法区,寄存器
3、数组的排序:
1)选择排序:
  1. public static void selectSort(int[] arr)  
  2. {  
  3.     for(int x=0;x<arr.length-1;x++)  
  4.     {  
  5.         for(int y=x+1;y<arr.length;y++)  
  6.         {  
  7.             if(arr[x]<arr[y])  
  8.             {  
  9.                 int temp=arr[x];  
  10.                 arr[x]=arr[y];  
  11.                 arr[y]=temp;  
  12.             }  
  13.         }  
  14.     }  
  15. }  
public static void 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])
			{
				int temp=arr[x];
				arr[x]=arr[y];
				arr[y]=temp;
			}
		}
	}
}
2)冒泡排序:
  1. public static void bubbleSort(int[] arr)  
  2. {  
  3.     for(int x=0;x<arr.length-1;x++)  
  4.     {  
  5.         for(int y=0;y<arr.length-x-1;y++)  
  6.         {  
  7.             if(arr[y]<arr[y+1])  
  8.             {  
  9.                 int temp=arr[x];  
  10.                 arr[y]=arr[y+1];  
  11.                 arr[y+1]=temp;  
  12.             }  
  13.         }  
  14.     }  
  15. }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值