黑马程序员--Java基础
2015-08-27 22:48
477 查看
——- android培训、java培训、期待与您交流! ———-
J2ME(Java 2 Platform Micro Edition)小型版
J2EE(Java 2 Platform Enterprise Edition)企业版
Java的开发环境主要使用JDK(Java Development ToolKit-Java开发程序包),JDK是Java的核心,包含JRE(Java Runtime Envirnment-Java运行环境),而JVM(Java Virtual Mechinal-Java虚拟机)又是JRE中的一部分,实现可移植性靠的是JVM。
三者间的关系
JDK:JRE+工具
JRE:JVM+类库
安装方式:傻瓜式安装,下一步即可。
通过配置path环境变量,将javac指令所在目录也就是JDK安装目录下的bin目录配置到path变量下,即可使javac指令在任意目录下运行
步骤
1.进入“我的电脑”中“属性”里面的“高级系统设置”选择“环境变量”,在系统变量中新建变量名称为JAVA_HOME,变量值为jdk的安装目录。
2.配置path,一定要保留原先的path变量,在原先的基础上用”;”分隔开来,在最前面添加%JAVA_HOME%\bin,代表bin目录的路径。
3.保存好以后运行命令提示符,输入命令“javac”出现帮助说明就证明配置正确。
classpath默认当前运行路径,在系统变量中配置classpath,配置的路径为*.class放置的文件夹的路径,配置完成以后,无论java命令在任何位置执行,都会从classpath路径中查找文件。
临时设置classpath路径方法:set classpath=“路径”,只作用于当前运行的这个命令提示符窗口,窗口关掉以后失效。
1.关键字
被java赋予了特殊含义的单词
2.标识符
在程序中自定义的一些名称
由26个大小写,数字 _ $组成
数字不能开头 关键字不能开头 严格区分大小写
规范:
包名:所有字母都小写 xxxyyyzzz
类名接口名:所有首字母大写 XxxYyyZzz
常量名:所有字母大写,多个单词的话用下划线连接 XXX_YYY_ZZZ
变量名和函数名: 第一个单词全小写,后面的所有单词首字母大写 xxxYyyZzz
3.注释
顾名思义,就是对Java语句做说明的语句
// 单行注释
/* */ 多行注释
/* / 文档注释
4.常量
表示程序运行时,数值不能改变的量
字面值常量:整数、小数、字符、字符串、布尔、null
自定义常量:类、接口、数组
5.变量
变量是内存中的一个存储空间,在程序运行过程中,其值在指定范围内可以改变的量。
变量的定义格式:
数据类型 变量名 = 初始化值;
例如:int i = 123;
6.进制
表现形式
二进制
由0和1组成,8个单位是1个字节 1个字节最大值是255,计算机采用此进制
八进制
0-7,满8进1,用0开头
十进制
0-9,满10进1
十六进制
0-9,A-F,满16进1,用0x开头
负数的二进制表现形式
-6:6的二进制取反+1 取反:将二进制的1变成0.0变成1
进制间的转换
十转二:对十进制数进行除2运算。没有余数为0 有余数为1。计算结果从右往左写。
例如,6的二进制表现形式为110。6除以2等于3,无余数得0。3除以2等于1,余数为1 得1。从右往左写就是110
二转十:二进制乘以2的过程。 从右往左运算
例如,110 0*2的0次方+1*2的1次方+1*2的2次方=0+2+4=6
其他进制转16进制:先转化为2进制,再转化为16进制
其他进制转8进制。三位代表一位进行转换
short:短整型 16个二进制位 -21768~32767(-2的15次方~2的15次方减1)
int:整型 32个二进制位
long:长整型 64个二进制位
float:单精度 32个二进制位
double:双精度 64个二进制位
char:字符变量 16个二进制位
整数默认int
浮点默认double
长整数要加L或者l,单精度的浮点数要加F或者f。
数据间的转换
自动类型转换
byte b = 3
b= b + 2 不能运行
b占1个字节,2默认int类型占4个字节,不同的数据类型之间不能直接做运算,需要提升b的数值类型(小的向大的提升),运算结果也是4个字节,不能直接赋给b。3本身是整数,但在b的范围内,是个常量,所以可以赋给b。
强制类型转换
b = (byte)(b + 2);
byte强制转换的是小括号里的内容,不加小括号的话,byte只会转换b,不会转换2,所以还是会报错。
+, - , *, /
加减乘除就不用说了,大家都懂的~
说点特别的
%(取模即取余数 左边小于右边结果是左边。左边等于右边结果是0。右边是1结果是0。如果出现负数,结果只看被模数即左边)
++:a++ 表示给a进行+1运算,并将运算后的值重新赋给a,不等于a=a+1,因为a+1只进行+1运算,并没有把运算后的值重新赋给a。 b=a++:先将a的值赋给b,再进行自身+1运算。b=++a,先自身+1运算,再将运算后的值赋给b。
+:如果两个字符串之间用加号连接,那现在的加号就是字符串连接符。“He”+“llo”=“Hello” 字符串数据和任何数据使用+相连接,最终都会变成字符串。
\n:换行 \b:退格 \r:按下回车键(Windows系统中,回车符是由两个字符来表示\r \n) \t:制表符,相当于Tab键
给字符加双引号:(“\”Heloo\”“)
赋值运算符
=、+=、-=、*=、/=、%=
x+=4:把左右两边的和赋给左边 相当于x = x + 4 区别x = x + 4编译失败,因为数据类型不同,不能赋值,x=+4编译成功,因为+=运算符在给x赋值时,会自动完成强行转换动作
比较运算符
==:相等于
!=:不等于
运算完的结果不是true就是false
逻辑运算符
&:and与
|:or或
^:XOR异或
!:not非
位运算符
& 按位与
| 按位或
^ 异或(相同为0,相反为1)
三元运算符
格式:(条件表达式)?表达式1:表达式2;
特点:三个元素参与的运算
如果条件为true,输出表达式1,条件为false,输出表达式2
选择结构:按照不同的选择,执行不同的代码
if语句
三种格式
if(条件表达式){执行语句:}if后面如果没有{},则只执行离他最近的单条语句
if(条件表达式){执行语句:}else{执行语句:}
if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2
三元运算符 好处:可以简化if else 代码。 弊端:因为是一个运算符,所以运算完必须要有一个结果
if(条件表达式){执行语句:}else if(条件表达式){执行语句:}….else{执行语句:} 循环结构:做一些重复的代码
if语句的注意事项:
A:比较表达式无论简单还是复杂,结果必须是boolean类型
B:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
C:一般来说:有左大括号就没有分号,有分号就没有左大括号
Switch语句
格式:
switch(表达式)
格式的解释:
switch:表示这是switch选择结构
表达式:这个地方的取值是有限定的
byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面跟的是要和表达式进行比较的值
语句体:要执行的代码
break:表示中断,结束的意思,可以控制switch语句的结束。
default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
switch语句的注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
循环语句
for
While
do…while
控制跳转语句
break:中断的意思,跳出单层循环,用在循环和switch语句中,离开此应用场景无意义。
continue:继续,跳出单层循环的一次,可以继续下一次,用在循环中,离开此应用场景无意义。
return:返回, 用于结束方法的,一旦遇到return,程序就不会在继续往后执行。
格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2….)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型
参数类型:是形式参数的数据类型
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数
实际参数:传递给形式参数的具体数值
return:用于结束函数
返回值:该值会反悔给调用者
定义方法需要两个明确:
返回值类型:结果的数据类型
参数列表:参数的个数及对应的数据类型
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值无关。
参数列表不同:参数的个数不同,参数的对应的数据类型不同。
定义:同一种类型数据的集合。其实数组就是一个容器。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式
1.元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
2.元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
数组中有一个属性可以直接获取到数组元素个数:length
数组的遍历
二维数组
元素是一维数组的数组。
格式1:
数据类型[][] 数组名 = new 数据类型[m]
;
m:表示这个二维数组有多少个一维数组。
n:表示每一个一维数组的元素有多少个。
格式2:
数据类型[][] 数组名 = new 数据类型[m][];
m:表示这个二维数组有多少个一维数组。
列数没有给出,可以动态的给。这一次是一个变化的列数。
格式3:
数据类型[][] 数组名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}};
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{4,5},{6}};
二维数组的遍历
——- android培训、java培训、期待与您交流! ———-
Java
概述
Java是Sun(Stanford University Network)公司开发出来的一套编程语言,主设计者是詹姆斯·高斯林James Gosling,最大的特点就是跨平台运行。分类
J2SE(Java 2 Platform Standard Edition)标准版J2ME(Java 2 Platform Micro Edition)小型版
J2EE(Java 2 Platform Enterprise Edition)企业版
Java的开发环境主要使用JDK(Java Development ToolKit-Java开发程序包),JDK是Java的核心,包含JRE(Java Runtime Envirnment-Java运行环境),而JVM(Java Virtual Mechinal-Java虚拟机)又是JRE中的一部分,实现可移植性靠的是JVM。
三者间的关系
JDK:JRE+工具
JRE:JVM+类库
JDK的下载和安装
下载网址:www.oracle.com安装方式:傻瓜式安装,下一步即可。
配置环境变量
作用通过配置path环境变量,将javac指令所在目录也就是JDK安装目录下的bin目录配置到path变量下,即可使javac指令在任意目录下运行
步骤
1.进入“我的电脑”中“属性”里面的“高级系统设置”选择“环境变量”,在系统变量中新建变量名称为JAVA_HOME,变量值为jdk的安装目录。
2.配置path,一定要保留原先的path变量,在原先的基础上用”;”分隔开来,在最前面添加%JAVA_HOME%\bin,代表bin目录的路径。
3.保存好以后运行命令提示符,输入命令“javac”出现帮助说明就证明配置正确。
classpath默认当前运行路径,在系统变量中配置classpath,配置的路径为*.class放置的文件夹的路径,配置完成以后,无论java命令在任何位置执行,都会从classpath路径中查找文件。
临时设置classpath路径方法:set classpath=“路径”,只作用于当前运行的这个命令提示符窗口,窗口关掉以后失效。
Java的基础知识
Java语言基础组成1.关键字
被java赋予了特殊含义的单词
2.标识符
在程序中自定义的一些名称
由26个大小写,数字 _ $组成
数字不能开头 关键字不能开头 严格区分大小写
规范:
包名:所有字母都小写 xxxyyyzzz
类名接口名:所有首字母大写 XxxYyyZzz
常量名:所有字母大写,多个单词的话用下划线连接 XXX_YYY_ZZZ
变量名和函数名: 第一个单词全小写,后面的所有单词首字母大写 xxxYyyZzz
3.注释
顾名思义,就是对Java语句做说明的语句
// 单行注释
/* */ 多行注释
/* / 文档注释
4.常量
表示程序运行时,数值不能改变的量
字面值常量:整数、小数、字符、字符串、布尔、null
自定义常量:类、接口、数组
5.变量
变量是内存中的一个存储空间,在程序运行过程中,其值在指定范围内可以改变的量。
变量的定义格式:
数据类型 变量名 = 初始化值;
例如:int i = 123;
6.进制
表现形式
二进制
由0和1组成,8个单位是1个字节 1个字节最大值是255,计算机采用此进制
八进制
0-7,满8进1,用0开头
十进制
0-9,满10进1
十六进制
0-9,A-F,满16进1,用0x开头
负数的二进制表现形式
-6:6的二进制取反+1 取反:将二进制的1变成0.0变成1
进制间的转换
十转二:对十进制数进行除2运算。没有余数为0 有余数为1。计算结果从右往左写。
例如,6的二进制表现形式为110。6除以2等于3,无余数得0。3除以2等于1,余数为1 得1。从右往左写就是110
二转十:二进制乘以2的过程。 从右往左运算
例如,110 0*2的0次方+1*2的1次方+1*2的2次方=0+2+4=6
其他进制转16进制:先转化为2进制,再转化为16进制
其他进制转8进制。三位代表一位进行转换
基本数据类型
byte:字节 8个二进制位 -128~127(-2的7次方~2的7次方减1)short:短整型 16个二进制位 -21768~32767(-2的15次方~2的15次方减1)
int:整型 32个二进制位
long:长整型 64个二进制位
float:单精度 32个二进制位
double:双精度 64个二进制位
char:字符变量 16个二进制位
整数默认int
浮点默认double
长整数要加L或者l,单精度的浮点数要加F或者f。
数据间的转换
自动类型转换
byte b = 3
b= b + 2 不能运行
b占1个字节,2默认int类型占4个字节,不同的数据类型之间不能直接做运算,需要提升b的数值类型(小的向大的提升),运算结果也是4个字节,不能直接赋给b。3本身是整数,但在b的范围内,是个常量,所以可以赋给b。
强制类型转换
b = (byte)(b + 2);
byte强制转换的是小括号里的内容,不加小括号的话,byte只会转换b,不会转换2,所以还是会报错。
运算符
算术运算符+, - , *, /
加减乘除就不用说了,大家都懂的~
说点特别的
%(取模即取余数 左边小于右边结果是左边。左边等于右边结果是0。右边是1结果是0。如果出现负数,结果只看被模数即左边)
++:a++ 表示给a进行+1运算,并将运算后的值重新赋给a,不等于a=a+1,因为a+1只进行+1运算,并没有把运算后的值重新赋给a。 b=a++:先将a的值赋给b,再进行自身+1运算。b=++a,先自身+1运算,再将运算后的值赋给b。
+:如果两个字符串之间用加号连接,那现在的加号就是字符串连接符。“He”+“llo”=“Hello” 字符串数据和任何数据使用+相连接,最终都会变成字符串。
\n:换行 \b:退格 \r:按下回车键(Windows系统中,回车符是由两个字符来表示\r \n) \t:制表符,相当于Tab键
给字符加双引号:(“\”Heloo\”“)
赋值运算符
=、+=、-=、*=、/=、%=
x+=4:把左右两边的和赋给左边 相当于x = x + 4 区别x = x + 4编译失败,因为数据类型不同,不能赋值,x=+4编译成功,因为+=运算符在给x赋值时,会自动完成强行转换动作
比较运算符
==:相等于
!=:不等于
运算完的结果不是true就是false
逻辑运算符
&:and与
|:or或
^:XOR异或
!:not非
class OperatorDemo { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; //&逻辑与 System.out.println((a > b) & (a > c)); //false & false = false System.out.println((a > b) & (a < c)); //false & true = false System.out.println((a < b) & (a > c)); //true & false = false System.out.println((a < b) & (a < c)); //true & true = true System.out.println("---------------"); //|逻辑或 System.out.println((a > b) | (a > c)); //false | false = false System.out.println((a > b) | (a < c)); //false | true = true System.out.println((a < b) | (a > c)); //true | false = true System.out.println((a < b) | (a < c)); //true | true = true System.out.println("---------------"); //^逻辑异或 System.out.println((a > b) ^ (a > c)); //false ^ false = false System.out.println((a > b) ^ (a < c)); //false ^ true = true System.out.println((a < b) ^ (a > c)); //true ^ false = true System.out.println((a < b) ^ (a < c)); //true ^ true = false System.out.println("---------------"); //!逻辑非 System.out.println(!(a > b)); //!false = true System.out.println(!(a < b)); //!true = false System.out.println(!!(a > b)); //!!false = false System.out.println(!!!(a > b)); //!!false = true } }
位运算符
<< 左移位 >> 右移位 >>> 无符号右移位 public class OperatorDemo { public static void main (String args []) { int a = 3 >> 2; int b = 3 >> 2; int x = -3 >> 2; int y = -3 >>> 2; System.out.println(a); System.out.println(b); System.out.println(x); System.out.println(y); } } 运行结果为:0 0 -1 1073741823 对于正数来说没有任何区别。 -3的补码进行右移两位运算 11111111-11111111-11111111-11111101 11111111-11111111-11111111-1111111101 右移两位之后加上两位符号位11 -3的补码进行无符号右移两位运算 11111111-11111111-11111111-11111101 00111111-11111111-11111111-1111111101 右移两位之后用00补位
& 按位与
| 按位或
^ 异或(相同为0,相反为1)
三元运算符
格式:(条件表达式)?表达式1:表达式2;
特点:三个元素参与的运算
如果条件为true,输出表达式1,条件为false,输出表达式2
class OperatorDemo { public static void main(String[] args) { int x = 100; int y = 200; int z = ((x > y)? x: y); System.out.println("z:"+z); } }
流程控制语句句
顺序结构:从上往下,依次执行class ShunXuJieGouDemo { public static void main(String[] args) { System.out.println("程序开始了"); System.out.println("我爱Java"); System.out.println("程序结束了"); } }
选择结构:按照不同的选择,执行不同的代码
if语句
三种格式
if(条件表达式){执行语句:}if后面如果没有{},则只执行离他最近的单条语句
if(条件表达式){执行语句:}else{执行语句:}
if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2
三元运算符 好处:可以简化if else 代码。 弊端:因为是一个运算符,所以运算完必须要有一个结果
if(条件表达式){执行语句:}else if(条件表达式){执行语句:}….else{执行语句:} 循环结构:做一些重复的代码
if语句的注意事项:
A:比较表达式无论简单还是复杂,结果必须是boolean类型
B:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。建议永远不要省略。
C:一般来说:有左大括号就没有分号,有分号就没有左大括号
Switch语句
格式:
switch(表达式)
switch(表达式) { case 取值1: 执行语句; break; case 取值2: 执行语句; break; 。。。。 default: 执行语句; break; }
格式的解释:
switch:表示这是switch选择结构
表达式:这个地方的取值是有限定的
byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:后面跟的是要和表达式进行比较的值
语句体:要执行的代码
break:表示中断,结束的意思,可以控制switch语句的结束。
default:当所有的值都和表达式不匹配的时候,就执行default控制的语句。其实它就相当于if语句的else。
switch语句的注意事项:
A:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
B:default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
特殊情况:
case就可以把值固定。
A,B,C,D
C:break可以省略吗?
可以省略,但是结果可能不是我们想要的。
会出现一个现象:case穿透。
最终我们建议不要省略
D:default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
E:switch语句的结束条件
a:遇到break就结束了
b:执行到末尾就结束了
循环语句
for
/* for循环格式: for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } 执行流程: A:执行初始化语句 B:执行判断条件语句,看其返回值是true还是false 如果是true,就继续执行 如果是false,就结束循环 C:执行循环体语句; D:执行控制条件语句 E:回到B继续。 注意事项: A:判断条件语句无论简单还是复杂结果是boolean类型。 B:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略。 C:一般来说:有左大括号就没有分号,有分号就没有左大括号 需求:请在控制台输出10次"HelloWorld" */ class ForDemo { public static void main(String[] args) { for(int x=1;x<=10;x++) { System.out.println("HelloWorld"); } } }
While
/* while循环的基本格式: while(判断条件语句) { 循环体语句; } 扩展格式: 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } 通过这个格式,我们就可以看到其实和for循环是差不多的。 for(初始化语句;判断条件语句;控制条件语句) { 循环体语句; } */ class WhileDemo { public static void main(String[] args) { //输出10次"HelloWorld" int x=0; while(x<10) { System.out.println("HelloWorld"); x++; } } }
do…while
/* do...while循环的基本格式: do { 循环体语句; }while(判断条件语句); 扩展格式; 初始化语句; do { 循环体语句; 控制条件语句; }while(判断条件语句); */ class DoWhileDemo { public static void main(String[] args) { //输出10次HelloWorld。 int x = 0; do { System.out.println("HelloWorld"); x++; }while(x<10); System.out.println("--------------"); //求和1-100 int sum = 0; int a = 1; do { sum += a; a++; }while(a<=100); System.out.println(sum); } }
控制跳转语句
break:中断的意思,跳出单层循环,用在循环和switch语句中,离开此应用场景无意义。
continue:继续,跳出单层循环的一次,可以继续下一次,用在循环中,离开此应用场景无意义。
return:返回, 用于结束方法的,一旦遇到return,程序就不会在继续往后执行。
方法(函数)
定义:函数就是定义在类中的具有特定功能的一段独立小程序,也称之为方法格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2….)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型
参数类型:是形式参数的数据类型
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数
实际参数:传递给形式参数的具体数值
return:用于结束函数
返回值:该值会反悔给调用者
定义方法需要两个明确:
返回值类型:结果的数据类型
参数列表:参数的个数及对应的数据类型
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值无关。
参数列表不同:参数的个数不同,参数的对应的数据类型不同。
数组
一维数组定义:同一种类型数据的集合。其实数组就是一个容器。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
格式
1.元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
2.元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
数组中有一个属性可以直接获取到数组元素个数:length
数组的遍历
class ArrayTest { public static void main(String[] args) { //定义数组 int[] arr = {11,22,33,44,55}; //获取每一个元素 printArray(arr); public static void printArray(int[] arr) { System.out.print("["); for(int x=0; x<arr.length; x++) { if(x == arr.length-1) { //这是最后一个元素 System.out.println(arr[x]+"]"); }else { System.out.print(arr[x]+", "); } } } }
二维数组
元素是一维数组的数组。
格式1:
数据类型[][] 数组名 = new 数据类型[m]
;
m:表示这个二维数组有多少个一维数组。
n:表示每一个一维数组的元素有多少个。
格式2:
数据类型[][] 数组名 = new 数据类型[m][];
m:表示这个二维数组有多少个一维数组。
列数没有给出,可以动态的给。这一次是一个变化的列数。
格式3:
数据类型[][] 数组名 = {{元素1,元素2…},{元素1,元素2…},{元素1,元素2…}};
举例:
int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int[][] arr = {{1,2,3},{4,5},{6}};
二维数组的遍历
class Array2Test { public static void main(String[] args) { //定义二维数组 int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; //遍历数组 printArry(arr); } public static void printArry(int[][] arr) { for (int x=0;x<arr.length ;x++ ) { for (int y=0;y<arr[x].length ;y++ ) { System.out.print(arr[x][y]+" "); } System.out.println(); } } }
总结
这篇博客主要讲述了Java的基础知识,这都是以后写程序的基石,以后不管学的知识再高深,也都离不开这些。所以,学Java,这些基础必须得深深地印在脑中。——- android培训、java培训、期待与您交流! ———-
相关文章推荐
- 面试题:找出数组中只出现一次的数字(二)
- 面试题:找出数组中只出现一次的数字
- 面试常见知识点
- [面试技巧]16个经典面试问题回答思路
- 黑马程序员——Java基础之集合框架
- 一道经典的笔试面试题考考大家
- 阿里 Java面试 知识点
- LintCode-判断字符串是否没有重复字符
- 《剑指Offer》面试题12:打印1到最大的n位数
- 黑马程序员——Java基础---IO(一)
- iOS程序员面试题系列(2)
- lintCode-删除链表中倒数第n个节点
- 面试常见问题
- 优雅的程序员
- Binary Tree Zigzag Level Order Traversal——关于广度优先的经典面试题
- 21道工作中总结的iOS高频面试题
- 黑马程序员--对象和方法之间的关系
- iOS程序员面试题系列(1)
- 美团面试算法题
- 黑马程序员_集合框架(二)