关于java的小知识

1.Java常识

java作用域public ,private ,protected 及不写时的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友。

1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。

作用域 当前类 同一package 子孙类 其他package

public √ √ √ √

protected √ √ √ *

friendly √ √ * *

private √ * * *

不写时默认为friendly

2.关于JAVA的常识

Java包含了一种计算机编程语言和一个平台。

*Java编程语言是一种高级语言。由Sun微系统公司(Sun Macrosystem)发布,并作为一种开放的标准进行提供。

*Java平台包括了Java虚拟机和Java应用程序接口(API)。 Java将原程序编译成字节码(bytecode),并通过Java虚拟机(JVM)解释字节码的方式来执行。

因为这种运行方式,只要针对不同的计算机平台准备相应的Java虚拟机,就可以很方便的实现Java语言的跨平台性。因此,Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。

Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。 Java的主要应用有如下几点: *利用浏览器中的Java虚拟机运行于客户端的Applet。

*利用本地虚拟机运行的Java应用程序,通常利用Swing或SWT等来编写跨平台的GUI界面系统。 *通过编写Servlet/JSP来提供网络服务,运行于网络应用程序服务器中。

*利用嵌入式Java虚拟机运行于手机等移动设备的Java应用程序,使用J2ME API。 Java的产生 Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。

开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。

Java的取名也有一个趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。 Java平台根据API和使用领域,主要分为三种技术 *Java SE (旧称J2SE) – Java Platform, Standard Edition, 定位在客户端,主要用于桌面应用软件的编程 *Java EE (旧称J2EE) – Java Platform, Enterprise Edition, 定义在服务器端Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统 *Java ME (旧称J2ME) – Java Platform, Micro Edition, 主要应用于嵌入式系统开发,如手机和PDA的编程 Java的特色 Java从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。

Java是 *是一种软件技术 *是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 *是一种为 Internet发展的计算机语言 *是一种使网页(Web Page)产生生动活泼画面的语言 *是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 *是一种语言,用以产生「小应用程序(Applet(s))」 *是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 *是一种将安全性(Security)列为第一优先考虑的语言 *是一种使用者不需花费很多时间学习的语言 *是一种突破用户端机器环境和CPU结构的语言 *是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的机器 上(LocalMachine)并执行 *是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或MAC等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。 JavaFX 在2007JavaOne会议上,Sun负责软件业务的执行副总裁格林公布了JavaFX Script:一种用于编写能够在支持Java的PC和手机上运行的应用软件的更简单的脚本语言。

为了解决手机的兼容性问题JavaFX Mobile是一种面向手机厂商、提高Java应用软件在不同手机间兼容性的软件包。 目前最新版 的java有三个版本,java SE,JAVA ME,JAVA EE.。

3.java 基础知识有那些

1、对象的初始化(1) 非静态对象的初始化 在创建对象时,对象所在类的所有数据成员会首先进行初始化。

基本类型:int型,初始化为0。 如果为对象:这些对象会按顺序初始化。

※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。

(2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的所有静态变量都初始化,并且第一次访问某类(注意此时 未创建此类对象)的静态对象时,所有的静态变量也要按它们在类中的顺序初始化。

2、继承时,对象的初始化过程 (1) 主类的超类由高到低按顺序初始化静态成员,无论静态成员是否为private。 (2) 主类静态成员的初始化。

(3) 主类的超类由高到低进行默认构造方法的调用。注意,在调用每一个超类的默认构造 方法前,先进行对此超类进行非静态对象的初始化。

(4) 主类非静态成员的初始化。 (5) 调用主类的构造方法。

3、关于构造方法 (1) 类可以没有构造方法,但如果有多个构造方法,就应该要有默认的构造方法,否则在继承此类时,需要在子类中显式调用父类的某一个非默认的构造方法了。 (2) 在一个构造方法中,只能调用一次其他的构造方法,并且调用构造方法的语句必须是 第一条语句。

4、有关public、private和protected (1) 无public修饰的类,可以被其他类访问的条件是:a.两个类在同一文件中,b.两个类 在同一文件夹中,c.两个类在同一软件包中。 (2) protected:继承类和同一软件包的类可访问。

(3) 如果构造方法为private,那么在其他类中不能创建该类的对象。 5、抽象类 (1) 抽象类不能创建对象。

(2) 如果一个类中一个方法为抽象方法,则这个类必须为abstract抽象类。 (3) 继承抽象类的类在类中必须实现抽象类中的抽象方法。

(4) 抽象类中可以有抽象方法,也可有非抽象方法。抽象方法不能为private。

(5) 间接继承抽象类的类可以不给出抽象方法的定义。 6、final关键字 (1) 一个对象是常量,不代表不能转变对象的成员,仍可以其成员进行操作。

(2) 常量在使用前必须赋值,但除了在声明的同时初始化外,就只能在构造方法中初始化 。 (3) final修饰的方法不能被重置(在子类中不能出现同名方法)。

(4) 如果声明一个类为final,则所有的方法均为final,无论其是否被final修饰,但数据 成员可为final也可不是。 7、接口interface (用implements来实现接口) (1) 接口中的所有数据均为 static和final即静态常量。

尽管可以不用这两个关键字修饰 ,但必须给常量赋初值。 (2) 接口中的方法均为public,在实现接口类中,实现方法必须可public关键字。

(3) 如果使用public来修饰接口,则接口必须与文件名相同。 8、多重继承 (1) 一个类继承了一个类和接口,那么必须将类写在前面,接口写在后面,接口之间用逗 号分隔。

(2) 接口之间可多重继承,注意使用关键字extends。 (3) 一个类虽只实现了一个接口,但不仅要实现这个接口的所有方法,还要实现这个接口 继承的接口的方法,接口中的所有方法均须在类中实现。

9、接口的嵌入 (1) 接口嵌入类中,可以使用private修饰。此时,接口只能在所在的类中实现,其他类不 能访问。

(2) 嵌入接口中的接口一定要为public。 10、类的嵌入 (1) 类可以嵌入另一个类中,但不能嵌入接口中。

(2) 在静态方法或其他方法中,不能直接创建内部类对象,需通过手段来取得。 手段有两种: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一个类继承了另一个类的内部类,因为超类是内部类,而内部类的构造方法不能自动 被调用,这样就需要在子类的构造方法中明确的调用超类的构造方法。

接上例: class C extends A.B { C() { new A().super(); // 这一句就实现了对内部类构造方法的调用。 } } 构造方法也可这样写: C(A a) { a.super(); } // 使用这个构造方法创建对象,要写成C c = new C(a); a是A的对象。

11、异常类 JAVA中除了RunTimeException 类,其他异常均须捕获或抛出。=。

4.java基础知识 有哪些知识点 要全面 不用详细

第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 通过序列化进。

5.java基础知识有哪些

对于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)表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同。

6.java中有哪些知识是重要的必须掌握的

在java的学习中,面向对象应该是java技术的重中之重,虽然在生活中没有对象可以面对,但在技术中还是要一直接触面对对象,而且不可避免。

今天对面向对象来了一个小总结。一、面向对象的特点:1、将复杂的事情简单化。

2、面向对象将以前的过程中的执行者,变成了指挥者。3、面向对象这种思想是符合现在人们思考习惯的一种思想。

过程和对象在我们的程序中是如何体现的呢?过程其实就是函数;对象是将函数等一些内容进行了封装。二、匿名对象使用场景:1、当对方法只进行一次调用的时候,可以使用匿名对象。

2、当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名字。

三、在类中定义其实都称之为成员。成员有两种:1、成员变量:其实对应的就是事物的属性。

2、成员函数:其实对应的就是事物的行为。所以,其实定义类,就是在定义成员变量和成员函数。

但是在定义前,必须先要对事物进行属性和行为的分析,才可以用代码来体现。四、类中怎么没有定义主函数呢?注意:主函数的存在,仅为该类是否需要独立运行,如果不需要,主函数是不用定义的。

主函数的解释:保证所在类的独立运行,是程序的入口,被jvm调用。五、成员变量和局部变量的区别:1、成员变量直接定义在类中;局部变量定义在方法中,参数上,语句中。

2、成员变量在这个类中有效;局部变量只在自己所属的大括号内有效,大括号结束,局部变量失去作用域。3、成员变量存在于堆内存中,随着对象的产生而存在,消失而消失;局部变量存在于栈内存中,随着所属区域的运行而存在,结束而释放。

六、构造函数和一般函数有什么区别呢?1、两个函数定义格式不同。2、构造函数是在对象创建时,就被调用,用于初始化,而且初始化动作只执行一次。

一般函数,是对象创建后,需要调用才执行,可以被调用多次。七、创建一个对象都在内存中做了什么事情?1、先将硬盘上指定位置的Person.class文件加载进内存。

2、执行main方法时,在栈内存中开辟了main方法的空间(压栈-进栈),然后在main方法的栈区分配了一个变量p。3、在堆内存中开辟一个实体空间,分配了一个内存首地址值。

new4、在该实体空间中进行属性的空间分配,并进行了默认初始化。5、对空间中的属性进行显示初始化。

6、进行实体的构造代码块初始化。7、调用该实体对应的构造函数,进行构造函数初始化。

8、将首地址赋值给p ,p变量就引用了该实体。(指向了该对象)。

7.java的几个小知识

1.

在java中,二进制数据的表示为:

int a = 0B1010110;

或者

int a = 0b1010110;

错误方式为

int a = 1010110B

2.

java标识符的组成包括:

A.英文字母大小写 B.数字 C.$和_

3.

基本数据类型转换时:boolean类型不参与转换

4.

byte类型的-128在计算机中表示为:1000 0000

8.JAVA基础知识

实现排序有好几种,我随便写一种给你参考下吧。

EXP:实现Comparator接口来比较对象,实现排序功能。1.定义一个学生类Student .java,须重写toString()方法。

public class Student { private String name; private int age; private int score; public Student(String name, int age, int score) { super(); this.name = name; this.age = age; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public String toString() { return “Student [name=” + name + “, age=” + age + “, score=” + score + “]”; }}2.写一个比较类MyComparator.java,须实现Comparator接口public class MyComparator implements Comparator<Student> { public int compare(Student s1, Student s2) { if (s1.getScore() > s2.getScore()) { return 1; } else if (s1.getScore() < s2.getScore()) { return -1; } else { return 0; } }}3.写一个测试类Test.javapublic class Test { public static void main(String args[]) throws IOException { new Test().sort(); } private void sort() { Student s1 = new Student(”小明”, 20, 150); Student s2 = new Student(”小艾”, 20, 100); Student s3 = new Student(”小白”, 20, 190); Student s4 = new Student(”小黑”, 20, 90); Student s5 = new Student(”小黄”, 20, 130); List<Student> list = new ArrayList<Student>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); list.add(s5); Collections.sort(list, new MyComparator()); System.out.println(list); }} 4.输出结果:[Student [name=小黑, age=20, score=90], Student [name=小艾, age=20, score=100], Student [name=小黄, age=20, score=130], Student [name=小明, age=20, score=150], Student [name=小白, age=20, score=190]]。

%title插图%num