第2章 一切都是对象2.1 用句柄操纵对象2.2 必须创建所有对象2.2.1 保存在什么地方2.2.2 特殊情况:主类型2.2.3 Java中的数组2.3 绝对不要清除对象2.3.1 作用域2.3.2 对象的作用域2.4 新建数据类型:类2.4.1 字段和方法2.5 方法、自变量和返回值2.5.1 自变量列表2.6 构建Java程序2.6.1 名字的可见性2.6.2 使用其他组件2.6.3 static关键字2.7 我们的第一个Java程序2.8 注释和嵌入文档2.8.1 注释文档2.8.2 具体语法2.8.3 嵌入HTML2.8.4 @see:引用其他类2.8.5 类文档标记2.8.6 变量文档标记2.8.7 方法文档标记2.8.8 文档示例2.9 编码样式2.10 总结2.11 练习 第3章 控制程序流程3.1 使用Java运算符3.1.1 优先级3.1.2 赋值3.1.3 算术运算符3.1.4 自动递增和递减3.1.5 关系运算符3.1.6 逻辑运算符3.1.7 按位运算符3.1.8 移位运算符3.1.9 三元if-else运算符3.1.10 逗号运算符3.1.11 字串运算符+3.1.12 运算符常规操作规则3.1.13 造型运算符3.1.14 Java没有“sizeof”3.1.15 复习计算顺序3.1.16 运算符总结3.2 执行控制3.2.1 真和假3.2.2 if-else3.2.3 反复3.2.4 do-while3.2.5 for3.2.6 中断和继续3.2.7 切换3.3 总结3.4 练习 第4章 初始化和清除4.1 由构建器保证初始化4.2 方法过载4.2.1 区分过载方法4.2.2 主类型的过载4.2.3 返回值过载4.2.4 默认构建器4.2.5 this关键字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必须执行清除4.4 成员初始化4.4.1 规定初始化4.4.2 构建器初始化4.5 数组初始化4.5.1 多维数组4.6 总结4.7 练习 第5章 隐藏实施过程5.1 包:库单元5.1.1 创建独一无二的包名5.1.2 自定义工具库5.1.3 利用导入改变行为5.1.4 包的停用5.2 Java访问指示符5.2.1 “友好的”5.2.2 public:接口访问5.2.3 private:不能接触5.2.4 protected:“友好的一种”5.3 接口与实现5.4 类访问5.5 总结5.6 练习 第6章 类再生6.1 合成的语法6.2 继承的语法6.2.1 初始化基础类6.3 合成与继承的结合6.3.1 确保正确的清除6.3.2 名字的隐藏6.4 到底选择合成还是继承6.5 protected6.6 递增开发6.7 上溯造型6.7.1 何谓“上溯造型”?6.8 final关键字6.8.1 final数据6.8.2 final方法6.8.3 final类6.8.4 final的注意事项6.9 初始化和类装载6.9.1 继承初始化6.10 总结6.11 练习 第7章 多形性7.1 上溯造型7.1.1 为什么要上溯造型7.2 深入理解7.2.1 方法调用的绑定7.2.2 产生正确的行为7.2.3 扩展性7.3 覆盖与过载7.4 抽象类和方法7.5 接口7.5.1 Java的“多重继承”7.5.2 通过继承扩展接口7.5.3 常数分组7.5.4 初始化接口中的字段7.6 内部类7.6.1 内部类和上溯造型7.6.2 方法和作用域中的内部类7.6.3 链接到外部类7.6.4 static内部类7.6.5 引用外部类对象7.6.6 从内部类继承7.6.7 内部类可以覆盖吗?7.6.8 内部类标识符7.6.9 为什么要用内部类:控制框架7.7 构建器和多形性7.7.1 构建器的调用顺序7.7.2 继承和finalize()7.7.3 构建器内部的多形性方法的行为7.8 通过继承进行设计7.8.1 纯继承与扩展7.8.2 下溯造型与运行期类型标识7.9 总结7.10 练习 第8章 对象的容纳8.1 数组8.1.1 数组和第一类对象8.1.2 数组的返回8.2 集合8.2.1 缺点:类型未知8.3 枚举器(反复器)8.4 集合的类型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再论枚举器8.5 排序8.6 通用集合库8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 决定实施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 实用工具8.8 总结8.9 练习 第9章 违例差错控制9.1 基本违例9.1.1 违例自变量9.2 违例的捕获9.2.1 try块9.2.2 违例控制器9.2.3 违例规范9.2.4 捕获所有违例9.2.5 重新“掷”出违例9.3 标准Java违例9.3.1 RuntimeException的特殊情况9.4 创建自己的违例9.5 违例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺点:丢失的违例9.7 构建器9.8 违例匹配9.8.1 违例准则9.9 总结9.10 练习 第10章 Java IO系统10.1 输入和输出10.1.1 InputStream的类型10.1.2 OutputStream的类型10.2 增添属性和有用的接口10.2.1 通过FilterInputStream从InputStream里读入数据10.2.2 通过FilterOutputStream向OutputStream里写入数据10.3 本身的缺陷:RandomAccessFile10.4 File类10.4.1 目录列表器10.4.2 检查与创建目录10.5 IO流的典型应用10.5.1 输入流10.5.2 输出流10.5.3 快捷文件处理10.5.4 从标准输入中读取数据10.5.5 管道数据流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 数据的发起与接收10.7.2 修改数据流的行为10.7.3 未改变的类10.7.4 一个例子10.7.5 重定向标准IO10.8 压缩10.8.1 用GZIP进行简单压缩10.8.2 用Zip进行多文件保存10.8.3 Java归档(jar)实用程序10.9 对象串联10.9.1 寻找类10.9.2 序列化的控制10.9.3 利用“持久性”10.10 总结10.11 练习 第11章 运行期类型鉴定11.1 对RTTI的需要11.1.1 Class对象11.1.2 造型前的检查11.2 RTTI语法11.3 反射:运行期类信息11.3.1 一个类方法提取器11.4 总结11.5 练习 第12章 传递和返回对象12.1 传递句柄12.1.1 别名问题12.2 制作本地副本12.2.1 按值传递12.2.2 克隆对象12.2.3 使类具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成对象12.2.7 用Vector进行深层复制12.2.8 通过序。
import java.io.IOException;import java.io.InputStream;public class Years{public static void main(String[] areg) throws IOException{System.out.println("请输入年份,是判断是否是闰年,输入字母会报错");InputStream in=System.in;int i=0;byte[] b=new byte[1024];i=in.read(b)-2;Integer inte=new Integer(new String(b,0,i));System.out.println(years(inte.intValue()));}private static String years(int year) {if (year<=0) {return "输入的年份不能为负数";}else if ((year%100 !=0 || year%400 == 0) && year%4==0) {return "今年是闰年";}else {return "今年不是闰年";}}}希望采纳。
import java.util.Scanner;public class Point { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入学生的个数"); int stuNum = sc.nextInt(); double[] stuStore = new double[stuNum]; double sum = 0.00; for(int i = 0; i < stuNum; i++){ System.out.println("请输入第" + ( i + 1 ) + "个学生的成绩:"); double store = sc.nextDouble(); stuStore[i] = store; sum = sum + store; } for(int i = 0; i < stuNum; i++){ for(int j = 1; j stuStore[j]){ double temp = stuStore[i]; stuStore[i] = stuStore[j]; stuStore[j] = temp; } } } System.out.println("最高成绩为:" + stuStore[stuNum - 1]); System.out.println("最低成绩为:" + stuStore[0]); System.out.println("平均成绩为:" + sum/stuNum); }}。
对于Java开发学习者来说,基础掌握的知识点有以下几种:
1. Java面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
2. Java虚拟机的概念,任何一种可以运行Java字节码的软件均可看成是Java的虚拟机(JVM)
3. JDK顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的。它除了包括完整的JRE(Java Runtime Environment),Java运行环境,还包含了其他供开发者使用的工具包。
4. JRE的概念,普通用户而只需要安装JRE(Java Runtime Environment)来运行Java程序。而程序开发者必须安装JDK来编译、调试程序。
5. Java中覆盖(Override)是指子类对父类方法的一种重写,子类只能抛出比父类更少的异常,且访问权限不能比父类的小。被覆盖的方法不能是 private 的,否则只是在子类中重新定义了一个方法。
Java中重载(Overload)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。
import java.util.Scanner;
public class Point {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生的个数");
int stuNum = sc.nextInt();
double[] stuStore = new double[stuNum];
double sum = 0.00;
for(int i = 0; i stuStore[j]){
double temp = stuStore[i];
stuStore[i] = stuStore[j];
stuStore[j] = temp;
}
}
}
System.out.println("最高成绩为:" + stuStore[stuNum - 1]);
System.out.println("最低成绩为:" + stuStore[0]);
System.out.println("平均成绩为:" + sum/stuNum);
}
}
建议你看本书《Think in java》。上边的讲解很容易懂。
学java:
先把基本语法搞懂,你学过C++,java的语法和C++很像。你只要着重把他们不同的地方学清楚就行。
然后搞懂类。java纯面向对象的。所有的代码都在类中。所以你要把java中重要的类学一遍。比如流类,集合类,数据库操作类,网络编程的类等。当然,在这之前你要把java面向对象的思想弄懂,和C++有什么区别。这样你学习类的时候就容易多了。
最后多实践点,学了类之后,就用你学的类写点小程序,加深理解。
API说白了就是别人写好的类。像上边说的流类,集合类等都是API。API都有相应的文档供我们学习。你学java基础,一般在下载JDK时会同时下载下相应的文档。没有的话你可以到官方网站上去下载。
java语法基础1,关键字:其实就是某种语言赋予了特殊含义的单词。
保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。2,标示符:其实就是在程序中自定义的名词。
比如类名,变量名,函数名。包含 0-9、a-z、$、_ ; 注意: 1),数字不可以开头。
2),不可以使用关键字。3,常量:是在程序中的不会变化的数据。
4,变量:其实就是内存中的一个存储空间,用于存储常量数据。 作用:方便于运算。
因为有些数据不确定。所以确定该数据的名词和存储空间。
特点:变量空间可以重复使用。什么时候定义变量?只要是数据不确定的时候,就定义变量。
变量空间的开辟需要什么要素呢? 1,这个空间要存储什么数据?数据类型。 2,这个空间叫什么名字啊?变量名称。
3,这个空间的第一次的数据是什么? 变量的初始化值。变量的作用域和生存期:变量的作用域: 作用域从变量定义的位置开始,到该变量所在的那对大括号结束;生命周期: 变量从定义的位置开始就在内存中活了; 变量到达它所在的作用域的时候就在内存中消失了;数据类型: 1):基本数据类型:byte、short、int、long、float、double、char、boolean 2):引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double 自动类型转换:从低级别到高级别,系统自动转的;强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量;运算符号: 1)、算术运算符。 + - * / % %:任何整数模2不是0就是1,所以只要改变被模数就可以实现开关运算。
+:连接符。 ++,-- 2)、赋值运算符。
= += -= *= /= %= 3)、比较运算符。 特点:该运算符的特点是:运算完的结果,要么是true,要么是false。
4)、逻辑运算符。 & | ^ ! && || 逻辑运算符除了! 外都是用于连接两个boolean类型表达式。
&: 只有两边都为true结果是true。否则就是false。
|:只要两边都为false结果是false,否则就是true ^:异或:和或有点不一样。 两边结果一样,就为false。
两边结果不一样,就为true. & 和 &&区别: & :无论左边结果是什么,右边都参与运算。 &&:短路与,如果左边为false,那么右边不参数与运算。
| 和|| 区别:|:两边都运算。 ||:短路或,如果左边为true,那么右边不参与运算。
5)、位运算符:用于操作二进制位的运算符。 & | ^ <> >>>(无符号右移) 练习:对两个变量的数据进行互换。
不需要第三方变量。 int a = 3,b = 5;-->b = 3,a = 5; a = a + b; a =8; b = a - b; b =3;c a = a - b; a =5; a = a ^ b;// b = a ^ b;//b= a ^ b ^ b = a a = a ^ b;//a= a ^ b ^ a = b; 练习:高效的算出 2*8 ------------------> 位移运算的考验,java基础面试中它的曝光率不低哦5,语句。
If switch do while while for 这些语句什么时候用? 1)、当判断固定个数的值的时候,可以使用if,也可以使用switch。 但是建议使用switch,效率相对较高。
switch(变量){ case 值:要执行的语句;break; … default:要执行的语句; } 工作原理:用小括号中的变量的值依次和case后面的值进行对比,和哪个case后面的值相同了 就执行哪个case后面的语句,如果没有相同的则执行default后面的语句;细节:1):break是可以省略的,如果省略了就一直执行到遇到break为止; 2):switch 后面的小括号中的变量应该是byte,char,short,int四种类型中的一种; 3):default可以写在switch结构中的任意位置;如果将default语句放在了第一行,则不管expression与case中的value是否匹配,程序会从default开始执行直到第一个break出现。 2)、当判断数据范围,获取判断运算结果boolean类型时,需要使用if。
3)、当某些语句需要执行很多次时,就用循环结构。 while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。
因为for循环完毕,变量在内存中释放。break:作用于switch ,和循环语句,用于跳出,或者称为结束。
break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。
要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。代码片段:z: //for循环标号 for(int x=0;x<3;x++){ for(int y=0;y<2;y++){ //不带标号的就是结束整个循环体的作用,在那个循环内部就结束哪个循环 if(x==1)break; //带标号跳过break后面的语句,回到标号位置的循环,继续该循环下次的条件判断, //已决定是否执行该循环体 if(x==2&&y==1)break z; } } continue:只作用于循环结构,继续循环用的。
作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。
6,函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。
java中的函数的定义格式: 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){ 执行语句; return 返回值; } 当函数没有具体的返回值时,返回的返回值类型用void关键字表示。如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。
return的作用:结束函数。结束功能。
如何。
一、先明白了解什么是Java的四个方面。
初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别,分别有哪些应用。想想这些代码中用到了哪些知识点。
不要一味地照着书本敲代码。而不去理解。
要知道java是分两部分的:一个是编译,一个是运行。 二、掌握静态方法和属性 静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。
Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。
理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。 因此学习者应该理解静态方法和属性。
Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。 三、初学者还需明白JAVA的三个技术平台的关系。
Java分为三个体系,分别为Java SE JavaEE Java ME 要知道java是分两部分的:一个是编译,一个是运行。 。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.556秒