注意,在UML图中,public-protected-private分别用+,-,#表示. 类中成员修饰符 在同一类访问 在同一包访问 在子类内访问 在不同包可访问 Public √ √ √ √ Protected √ √ √ - Default √ √ - - Private √ - - - 说明: 1.对于子类.同一包的子类可以直接访问(public,protected,default),不同包的子类只能直接访问(public,protected)       2.对于非子类.同一包的可以经…
1父类和子类: ❶父类又称基类和超类(super class)子类又称次类和扩展类.同一个package的子类可以直接(不通过对象)访问父类中的(public,缺省,protected)数据和方法. ❷扩展关键字:extends.倘若子类Circles,父类GeometricObject.定义: public class Circles extends GeometricObject ❸Java只容许单一继承,即一个类只能继承自1个父类.多重继承使用接口实现. 2.子类使用父类的构造函数 ❶su…
1.知识要点 假设: public ClassName{     int data;   String name;     ClassName(){data=1;}     public static int getdata(){return data;}}</span> ❶含main()的为主类.多个类放在一个文件中,只能有一个主类. ❷类可以不定任何构造方法(函数),系统默认提供无参构造函数.当且仅当无任何无参构造函数时才提供. ❸构造函数与类同名,无返回类型.   ❹对象声明:Class…
1.Object中的equals方法 java中的的基本数据类型:byte,short,char,int,long,float,double,boolean.==比较的是值. ❶作用:对于复合类型来说,equal判断两个引用变量是否指向同一个对象,即判断地址(等同"==").返回true,否则返回false.并没有实际检查是否内容相同.默认实现为: public boolean equals(Object obj)       {return (this==obj);} [java] …
import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.I…
一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer>(); for (int i=0; i<str.length; i++) { if(!list.contains(str[i])) { list.add(str[i]); } } System.out.println("去除重复后的list集合"+list); 输出结果是:…
1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存储器和cache中的值在某个瞬间的值不同.在多线程中,某个线程访问的可能是cache的值而非主存储器. volatile保证线程直接访问主存储器,保证数据的一致性.volatile只能用于基本数据类型或者数组(boolean,byte, char, double ,float, integer, l…
1.多线程  1.1线程 线程是程序运行的基本执行单元.指的是一段相对独立的代码,执行指定的计算或操作.多操作系统执行一个程序时会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点.每个线程都有独立的堆栈.计数器.本地变量.但是能够共享内存,文件处理器,预存储状态等资源.JVM至少有主线程和垃圾清理进程. 1.2使用多线程的好处 如果能合理地使用线程,将会减少开发和维护成本,甚至可以改善复杂应用程序的性能.如在GUI应用程序中,还以通过线…
1文件类File    ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下:                  new File("c:\\book");//在目录下创建一个File对象                new File("c:\book\test.text");//以某个文件创建一个File对象    ❷构造函数:                File(…
1.Java数据类型       ❶不可变类,是指当创建了这个类的实例后,就不允许修改它的属性值. 它包括:         Primitive变量:boolean,byte, char, double ,float, integer, long, short         JDK不可变类:Boolean, Byte, Character, Double, Float, Integer, Long, Short, String (java.lang包中)      ❷可变类,是当你获得这个类的…
1.知识要点 ❶不可变类:一旦创建,其内容不能改变的类称之为不可变类.满足:⑴所有数据域私有,⑵没有修改器,⑶没有访问器方法,其返回一个指向可变数据域的引用.(这样通过引用就能修改私有数据域).比如,返回数组,String等皆可能导致实际数据被改变 ❷变量作用域:类的变量和方法可以任意顺序出现,只要方法没有使用某个变量.方法可以定义与类数据变量名称(实例变量和静态变量)相同的局部变量,且使用具有较高的优先级. ❸this引用:指向本身的引用.可以在无参和少参构造函数中使用this调用多参构造函数…
1.异常与异常处理 在<java编程思想>中这样定义 异常:阻止当前方法或作用域继续执行的问题.虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常.绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败.之所以java要提出异常处理机制,就是要告诉开发人员,你的程序出现了不正常的情况,请注意. 异常就是一个表示组织执行正常进行的错误(情况).异常没有处理,程序将非正常终止.这是Java鲁棒性的一个体现.异常处理最根本的优势或者目的:…
1.包装类 ❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销.但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object).Java将基本数据类型包装成类,即所谓的包装类---包括:数值包装类Number(Integer,Short,Byte,Float,Double,Long,) ,Character,Boolean. 其继承结构体系如下图所示: ❷数值包装类均扩展自抽象类Number.所有数值包装类数组均是Object([…
1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args) { String s1="Hello World";//初始化1 String s2=new String("Hello World");<span style="font-family: Arial, Helvetica, sans-serif;&…
1.声明数组变量:        double[] array=new double[10];         double array[]=new double[10];       double[] array1=new double[5];       double[] mylist={1.0,2.0,3.0,4.0};//声明创建和初始化一句表达,不能拆分     double[][] myArray=new double[2][];//maArray.length=5,注意此时new…
1.基本知识点    ❶方法在C++里面称为函数.调用方法时,应该类型兼容--即不需显式类型转换即可将形参传递给实参.    ❷形参的改变不影响实参的值.    ❸Java注重模块化设计和自顶向下的设计 2.Math类 Math隐式导入,故不需要import.常用函数如下: ❶正三角和反三角函数:sin(),cos(),tan(),asin(),acos(),atan().类型均为double,输入弧度 ❷角度弧度转换函数:toRadians(),toDegrees().参数和返回类型均为dou…
1.选择结构与输出 ❶Switch语句: Switch表达式必须算出 char,byte,short,int类型数值之一,总是括号括住:Value1----ValueN,对应有相同数据类型且为常量或者常量表达式(1+2,'A'+2),不能包含变量(如1+x); 从某个匹配语句开始向后执行.break和默认情况default可选 ❷条件表达式:System.out.println((a>b)?:a:b); ❸格式化控制台输出Printf:       %b   布尔值              …
1.知识点概叙 ① 定名常量:关键字final,类似C++ const定义,一般用大写:final double PI=3.1415926 ② 5/2=2:5.0/2=2.5://通常意义的除法,至少一个操作数为浮点数. ③ 当且仅当被除数为负时,余数才为负:-7%3=-1,-26%8=-2:20%-13=7 ④ 浮点数一般近似存储,整形才是精确的存储.整形一般默认是int,浮点浮点数一般默认是double.赋值或者计算时,应用L或F显示标注如:System.out.print(3.0F/10.…
使用的课本: Java语言程序设计(基础篇)----西电 李娜(译) 原著: Introduction to Java Progrmming(Eighth Edition) -----Y.Daniel Liang 使用Eclipse编译器. 1.计算机.程序和Java概述 ❶Java流行的原因:简单,面向对象,分布式,解释型,鲁棒,结构中立,安全,可移植,高性能,多线程,动态.一旦编写,任何的地方可运行. ❷区分大小写.如main不能写成Main.标识符由字母,下划线,美元"$",数字…
1.数组线性表ArrayList 数组一旦定义则不可改变大小.ArrayList可以不限定个数的存储对象.添加,插入,删除,查找比较数组更加容易.可以直接使用引用类型变量名输出,相当于toString().输出一个数组([,,,,,,]),数组中元素为对应标号存储元素的toString[]. 数组线性表和数组的区别总结如下: public class TestArrayList { public static void main(String[] args) { java.util.ArrayL…
内容简介 1.课程大纲 2.第一部分第一课:什么是C++? 3.第一部分第二课预告:C++编程的必要软件 开宗明义 亲爱的读者,您是否对C++感兴趣,但是C++看起来很难,或者别人对你说C++挺难的,你不知道如何入门? 别担心,这个系列教程就是为C++初学者准备的. 不可否认,C++是一门非常著名的语言.几乎学计算机的同学都难免要碰一下C++,中国的大学课堂一般也是先学C语言入门,然后就是Java或者C++. C++ 这门语言的使用很广泛,特别是在游戏开发领域,C++的性能和无限可能性使得其几乎…
JAVA进阶之旅(二)--认识Class类,反射的概念,Constructor,Field,Method,反射Main方法,数组的反射和实践 我们继续聊JAVA,这次比较有意思,那就是反射了 一.认识Class类 想要反射,你就必须要了解一个类--Class,我们知道,java程序中的各个java类都属于同一事物,我们通常用Classliability描述对吧,反射这个概念从JDK1.2就出来了,历史算是比较悠久了,这个Class可不是关键字哦,这个是一个类,他代表的是一类事物: 我们归根结底就…
#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight…
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例.       用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一 一.介绍 org.json包是另一个用来beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是…
原文:分享非常有用的Java程序(关键代码)(八)---Java InputStream读取网络响应Response数据的方法!(重要) Java InputStream读取数据问题 ====================================================================== 原理讲解 1. 关于InputStream.read()      在从数据流里读取数据时,为图简单,经常用InputStream.read()方法.这个方法是从流里每次只读…
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Json数据的方法示例.       用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构造和解析Json数据的两种方法详解一 一.介…
转自:http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/23/3096001.html 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Json数据的方法示例. 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造和解析Json数据的两种方法详解二 一.介绍 JSON-…
(五)Google Gson包的使用 1.简介 Gson包中,使用最多的是Gson类的toJson()和fromJson()方法:         ①toJson():将java对象转化为json数据(一般为json格式的字符串)  (序列化)         ②fromJson():从json数据(json格式字符串)转为java对象   (反序列化) 也可以使用JsonObject和JsonArray类的无参构造函数创建实例,然后调用add()方法来构造json数据,用法与org.json包…
(四)json-lib包的使用         既然json-lib包比org.json包重量级,那么json-lib包肯定有很多org.json包没有的类和方法,这篇笔记简单记录json-lib包中,json数据转换为java bean.Collection.java array等的方法. 1.json-lib包与org.json包         ①org.json包比json-lib包要轻量级,不需要依赖各种工具包:         ②将Java对象(beans, maps, collec…
(二)org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookies,  CDL的转换.         这篇学习笔记,主要介绍常用的一些类如:JSONObject.JSONArray.JSONStringer等的一些用法:介绍了如何将Map.Collection.Java Bean等对象转化为json数据:介绍了如何使用org.json包解析json数据等.  …