知识点:
1,软件:一系列按照特定组织的计算机数据和指令的集合。分为:系统软件和应用软件
2,人机交互:图形化界面和命令行方式
3,命令行方式:dir md(创建目录) rd(删除目录,空的)cd cd..(返回根目录) cd/(返回根目录) del(删除文件) exit(退出dos命令行)
4,Java发展史:SUN(Stanford University Network)与1995年推出的基于Oak开发的一门高级编程语言。
5,Java技术分支:JavaSE标准版,javaEE企业版,javaME小型版
6,Java语言特点:面向对象,可移植性(跨平台),支持分布式的网络应用,安全性和健壮性
7,Java三种核心机制:java虚拟机(JVM),垃圾回收机制(GC),代码安全性检测
8,环境配置:JAVA_HOME:(保存变量)C:\Program Files\Java\jdk1.7.0_03
Path:(设置JDK的可执行命令)%JAVA_HOME%\bin;…
Classpath:(在执行时告诉JVM类的保存路径).;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar
DOS下配置临时环境:Set命令,查看设置环境变量,只在当前命令行中有效
9,Hello World!:代表程序员对世界的美好向往….
10,标识符:26个英文字母大小写,数字0-9,“_”和“$“组成
要求:1)不可以以数字开头;2)不可以使用关键字(main不是关键字)
规则:包名:xxxyyyzzz 类名:XxxYyyZzz 变量名:xxxYyyZzz 常量名:XXX_YYY_ZZZ
Java中严格区分大小写
11,关键字:main不是关键字,但可以被虚拟机识别
12,数据类型:
1)Java中的数据类型分为:基本类型和引用类型;
2)基本类型分为数值类型和布尔类型,数值类型分为整数类型和浮点类型;
3)整数类型分为byte(1),short(2),int(4),long(8),char(2);浮点类型分为float(4)与double(8)类型 (括号中为字节数);
4)引用类型分为:数组,接口,类;
5)整数的表现形式:十进制,八进制(用0开头),十六进制(用0x开头);
13,运算符:
算术运算符:+正,-负,+加,-减,*乘,/除,%取模,++自增(前后),-- 自减(前后),+(字符串相加)
转义字符:\n 换行,\b相当于backspace \r 按下回车键 (\r\n:windows下的换行)\t制表符tab
赋值运算符:=,+=,-=,*=,/=,%=
比较运算符:==,!=,<,>,<=,>=,instanceof(检查是否是类的对象)
逻辑运算符:&(与),|(或),!(非)^ (异或) &&(短路与) ||(短路或)
位运算符:<<左移,>>右移,>>>无符号右移,&与运算,|或运算,^异或运算,~反码
三元运算符:(条件表达式)?表达式1:表达式2
14,程序流程控制:判断结构:if-else(简单部分建议使用三元运算符)switch语句(byte,short,int,char)
选择结构,
循环结构(while(..){..} do{…}while(…); for(..;..;..){…})
15,For和while的区别:For和while可以进行互换,如果需要定义循环增量,用for更为合适;注意一点:其中里面的循环条件表达式必须可以判断
16,Break和continue:
应用范围:break选择结构和循环结构,continue用于循环结构
注:这两个语句离开应用范围,存在是没有意义的;这个两个语句单独存在下面都不可以有语句,因为执行不到;Continue语句是结束本次循环继续下次循环;标号的出现,可以让这两个语句作用于指定的范围
17,函数:(方法)定义在类中的具有特定功能的一段独立小程序
格式:修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…){ 执行语句;return 返回值;}
18,重载:(Override)函数名相同,参数列表不同,跟返回值类型无关
19,数组:同一种类型数据的集合,下标从0开始;
格式:元素类型[] 数组名=new 元素类型[元素个数];
元素类型[] 数组名= new 元素类型[]{元素,元素,元素。。。}
20,内存知识:
栈内存:存放基本类型的变量和对象的引用变量(超过作用域自动释放)
堆内存:存放由 new 创建的对象和数组,(自动垃圾回收机制收取)
网上参考讲解:http://dylanxu.iteye.com/blog/1322916 Java中堆内存与栈内存分配浅析
21,数组的两种异常:
ArrayIndexOutOfBoundsException:访问了数组中不存在的角标
NullPointerException:空指针异常,引用为null时,还用于操作实体
22,数组遍历:for循环,增强的for循环
23,数组排序:
选择排序 :先拿第一个跟其他比,若比其他大换位,保证第一个最小,以此类推
冒泡排序:相邻两个元素进行比较,如果符合条件换位,保证最后一个符合条件
开发中一般使用Arrays.sort();
24,数组的折半查找:提高效率,但是必须要保证该数组是有序的数组(前提);可以应用到插入有序数列中数值
25,二维数组:大箱子里面包含小箱子,使用与一位数组一样
问题:
1,简述对JVM,JRE,JDK的理解?
jvm:java虚拟机,jre:java运行环境,jdk:java开发工具包
2,简述环境变量path和classpath的作用?
path:windows程序文件的目录,classpath:java类文件的目录
3,简述classpath环境变量值结尾处是否需要加分号,有什么区别?
JVM查找文件的顺序:如果没有classpath环境变量,JVM只在当前目录下查找要运行的类文件;如果配置了classpath环境,JVM会先在classpath环境变量值的目录中查找要运行的类文件。值的结尾处如果加上分号,那么JVM在classpath目录下没有找到要指定的类文件,会在当前目录下在查找一次;值的结尾出如果没有分号,那么JVM在classpath目录下没有找到要指定的类文件,不会在当前目录下查找,即使当前目录下有,也不会运行。建议:配置classpath环境变量时,值的结尾处不要加分号,如果需要访问当前目录可以用 “.”表示
4,++在前,在后的区别?
单独使用是没区别的,当遇到有赋值的时候,前加是先计算再赋值,后加是先赋值再计算。a=3;b=a++; //a=4,b=3; a=3;b=++a; //a=4,b=4
5, short s = 3; s = s+2; s+=2,有什么区别,为什么?
s=s+2;//编译失败,因为会被提升为int类型,运算后的结果还是int类型。无法赋值给short类型;
s+=2;//编译通过,因为+=运算符在给s赋值事,自动完成了强转操作。
6, &和&&的区别?
位运算时没区别,逻辑运算时,后者会出现短路情况
7, >>和>>>的区别?
移位时,>>最高位补什么由数据的最高位值定,>>>无论最高位是什么都用0补
8, ^作为位运算符的特点?
相异或同一个数两次得到原数(加密操作)
9, if语句和switch语句的应用场景。用于判断上switch效率更高(建议),switch只用于byte,short,int,char
10,如何理解,累加思想,计数器思想,大圈套小圈思想。
11,break和continue的特点?
应用范围:break选择结构和循环结构,continue用于循环结构;这两个语句离开应用范围,存在是没有意义的;这个两个语句单独存在下面都不可以有语句,因为执行不到;Continue语句是结束本次循环继续下次循环;标号的出现,可以让这两个语句作用于指定的范围
12,循环语句的什么时候用?(当一个语句执行多次)while和do while的区别?(do至少执行一次)while和for的区别?(循环增量时用for)
13,用具体的四部(是什么,特点,怎么用,什么时候用)将函数知识点体现出来?
函数是什么? 函数就是类中一段独立的小程序,对部分代码进行封装,方便于调用。
函数的特点? a,定义在类中。b,为了将需要的功能进行独立的封装。 c,函数的出现,对代码提高了复用性。 d,只有被调用才会执行。e,函数就是一个功能,功能通常有结果,没有结果的情况用void表示。
函数怎么用?a,函数代表功能,功能通常有结果,而且需要参与运算的数据。两个明确:明确功能结果,其实就是明确返回值类型,明确功能的未知内容,其实就是在明确参数列表。b,在两个明确基础上,用java的函数的格式进行具体的代码。c,记住,函数体现功能,只定义功能所需的部分内容即可。 d,只要是功能,尽量用函数进行封装。
函数什么时候用?还要出现功能定义,就通过函数来表现。 将部分重复代码进行封装,提高复用。 可以将代码的书写。比如,将输出语句封装。
14,return语句有什么用?1,结束函数,2,将结果返回给调用者。
15,如何快速思考定义一个函数。1,明确结果,2,明确未知内容
16,定义函数时注意事项?写法上,函数中不能定义函数,只能调用函数。定义上,函数自定义功能中所需的内容,额外的不要定义。
17,函数重载的理解以及好处?在类中定义了两个以上的同名函数,参数不同而已,跟返回值无关。好处:增强阅读性,方便调用
18,函数运行的内存过程?
1,当函数被调用的时候,函数就压栈了。 在栈内存中分配一个空间来存储该函数中的局部变量。
2,执行该函数中的执行语句进行运算。
3,当执行到return时,该函数结束,该函数弹栈,函数内部的变量空间都会被释放。
19,数组的理解,四部?
1,是什么? 是一个容器,可以存储多个数据。
2, 特点? 1,必须存储同一类型的数据。2,必须要明确元素的个数(数组的长度)
3,怎么用? 通过中括号的方式来表示数组。核心思想:通过数组的固定的索引(角标)对数组中的元素进行访问(设置,获取)
4,什么时候用? 当数据很多而且明确了个数,而且都是同一类型时,这时就要想到使用数组。
20,栈和堆的特点。
栈: 存储都是局部变量。 一旦局部变量所属的大括号区间结束,该变量释放。
堆: 存储的都是数组和对象,也称为实体,实体就是可以存储多个数据的空间。
21,数组操作中常见的问题,什么时候出现,出现的原因?
1,数组角标越界异常,运行时,访问到了数组中不存在角标。2,空指针异常,运行时,引用型变量没有任何实体指向时,还在操作该实体。
22,数组操作的思想是什么?核心思想:就是角标。通过元素的自动编号就可以访问(设置和获取)数组中的元素。
23,数组的常见的操作有哪些?最值,排序,二分查找(有序数列)
程序:
1,最有效率的方式算出2乘以8等于几? 2<<3
2,对两个整数变量的值进行互换(不需要第三方变量)。n=n^m;m=n^m;n=n^m;
3,int i = 3; i = i++; System.out.println("i="+i);//i是? i=3
4,打印九九乘法表。For循环
for (int i = 1, j = 1; j <= 9; i++) { System.out.print(i + "*" + j + "=" + i * j + "\t"); if (i == j) { j++; i = 0; System.out.println(); } }
5,编程题: 定义一个功能,完成对考试成绩的等级划分。
switch (num / 10) { case 10: case 9: System.out.println("A"); break; case 8: System.out.println("B"); break; case 7: System.out.println("C"); break; case 6: System.out.println("D"); break; default: System.out.println("E"); break; }
6,十进制转十六进制
/* * 进制转换功能。 base:相与的数值 offset:便移的位数 trans(60, 15, 4); 60转成十六进制数 */ public static void trans(int num, int base, int offset) { if (num == 0) { System.out.println("0"); return; } // 必须先将十六进制的元素进行存储。 char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; // 定义一个临时容器,用于存储查到的结果。 char[] arr = new char[32]; int pos = arr.length; while (num != 0) { int temp = num & base; arr[--pos] = chs[temp]; num = num >>> offset; } for (int x = pos; x < arr.length; x++) { System.out.print(arr[x]); } System.out.println(); }