Java新手入门的30个基本概念

简介:

 
Java 概述 :

  目前 Java 主要应用于中间件的开发 (middleware)--- 处理客户机于服务器之间的通信技术 , 早期的实践证明 ,Java 不适合 pc 应用程序的开发 , 其发展逐渐变成在开发手持设备 , 互联网信息站 , 及车载计算机的开发 .Java 于其他语言所不同的是程序运行时提供了平台的独立性 , 称许可以在 windows,solaris,linux 其他操作系统上使用完全相同的代码 .Java 的语法与 C++ 语法类似 ,C++/C 程序员很容易掌握 , 而且 Java 是完全的彻底的面向对象的 , 其中提出了很好的 GC(Garbage Collector) 垃圾处理机制 , 防止内存溢出。

   Java 的白皮书为我们提出了 Java 语言的 11 个关键特性。

   (1)Easy:Java 的语法比 C++ 的相对简单 , 另一个方面就是 Java 能使软件在很小的机器上运行 , 基础解释其和类库的支持的大小约为 40kb, 增加基本的标准库和线程支持的内存需要增加 125kb

   (2) 分布式 :Java 带有很强大的 TCP/IP 协议宓睦 ? ?Java 应用程序能够通过 URL 来穿过网络来访问远程对象 , 由于 servlet 机制的出现 , 使 Java 编程非常的高效 , 现在许多的大的 web server 都支持 servlet

   (3)OO: 面向对象设计是把重点放在对象及对象的接口上的一个编程技术 . 其面向对象和 C++ 有很多不同 , 在与多重继承的处理及 Java 的原类模型。

   (4) 健壮特性 :Java 采取了一个安全指针模型 , 能减小重写内存和数据崩溃的可能型。

   (5) 安全 :Java 用来设计网路和分布系统 , 这带来了新的安全问题 ,Java 可以用来构建防病毒和防攻击的 System. 事实证明 Java 在防毒这一方面做的比较好。

   (6) 中立体系结构 :Java 编译其生成体系结构中立的目标文件格式可以在很多处理器上执行 , 编译器产生的指令字节码 (Javabytecode) 实现此特性 , 此字节码可以在任何机器上解释执行。

   (7) 可移植性 :Java 中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好。

   (8) 多线程 :Java 处理多线程的过程很简单 ,Java 把多线程实现交给底下操作系统或线程程序完成 . 所以多线程是 Java 作为服务器端开发语言的流行原因之一。

   (9)Applet servlet: 能够在网页上执行的程序叫 Applet, 需要支持 Java 的浏览器很多 , applet 支持动态的网页 , 这是很多其他语言所不能做到的。

基本概念 :

   1.OOP 中唯一关系的是对象的接口是什么 , 就像计算机的销售商她不管电源内部结构是怎样的 , 他只关系能否给你提供电就行了 , 也就是只要知道 can or not 而不是 how and why. 所有的程序是由一定的属性和行为对象组成的 , 不同的对象的访问通过函数调用来完成 , 对象间所有的交流都是通过方法调用 , 通过对封装对象数据 , 很大限度上提高复用率。

   2.OOP 中最重要的思想是类 , 类是模板是蓝图 , 从类中构造一个对象 , 即创建了这个类的一个实例 (instance)

   3. 封装 : 就是把数据和行为结合起在一个包中 ) 并对对象使用者隐藏数据的实现过程 , 一个对象中的数据叫他的实例字段 (instance field)

   4. 通过扩展一个类来获得一个新类叫继承 (inheritance), 而所有的类都是由 Object 根超类扩展而得 , 根超类下文会做介绍。

   5. 对象的 3 个主要特性

   behavior--- 说明这个对象能做什么 .
   state--- 当对象施加方法时对象的反映 .
   identity--- 与其他相似行为对象的区分标志 .
  每个对象有唯一的 indentity  而这 3 者之间相互影响 .

   6. 类之间的关系 :

use-a : 依赖关系
has-a :
聚合关系
is-a :
继承关系 -- :A 类继承了 B , 此时 A 类不仅有了 B 类的方法 , 还有其自己的方法 .( 个性存在于共性中 )

   7. 构造对象使用构造器 : 构造器的提出 , 构造器是一种特殊的方法 , 构造对象并对其初始化。

  例 :Data 类的构造器叫 Data

    new Data()--- 构造一个新对象 , 且初始化当前时间 .
    Data happyday=new Data()--- 把一个对象赋值给一个变量 happyday, 从而使该对象能够多次使用 , 此处要声明的使变量与对象变量二者是不同的 .new 返回的值是一个引用。

  构造器特点 : 构造器可以有 0 , 一个或多个参数
  构造器和类有相同的名字
  一个类可以有多个构造器
  构造器没有返回值
  构造器总是和 new 运算符一起使用 .

   8. 重载 : 当多个方法具有相同的名字而含有不同的参数时 , 便发生重载 . 编译器必须挑选出调用哪个方法。

   9. (package)Java 允许把一个或多个类收集在一起成为一组 , 称作包 , 以便于组织任务 , 标准 Java 库分为许多包 .java.lang java.util java,net , 包是分层次的所有的 java 包都在 java javax 包层次内。

   10. 继承思想 : 允许在已经存在的类的基础上构建新的类 , 当你继承一个已经存在的类时 , 那么你就复用了这个类的方法和字段 , 同时你可以在新类中添加新的方法和字段。

   11. 扩展类 : 扩展类充分体现了 is-a 的继承关系 形式为 :class ( 子类 ) extends ( 基类 )

   12. 多态 : java , 对象变量是多态的 . java 中不支持多重继承

13. 动态绑定 : 调用对象方法的机制。

   (1) 编译器检查对象声明的类型和方法名。
   (2) 编译器检查方法调用的参数类型。

   (3) 静态绑定 : 若方法类型为 priavte static final  编译器会准确知道该调用哪个方法。

   (4) 当程序运行并且使用动态绑定来调用一个方法时 , 那么虚拟机必须调用 x 所指向的对象的实际类型相匹配的方法版本。

   (5) 动态绑定 : 是很重要的特性 , 它能使程序变得可扩展而不需要重编译已存代码。

   14.final : 为防止他人从你的类上派生新类 , 此类是不可扩展的。

   15. 动态调用比静态调用花费的时间要长。

   16. 抽象类 : 规定一个或多个抽象方法的类本身必须定义为 abstract

  例 : public abstract string getDescripition

17.Java 中的每一个类都是从 Object 类扩展而来的。

   18.object 类中的 equal toString 方法。

   equal 用于测试一个对象是否同另一个对象相等。

   toString 返回一个代表该对象的字符串 , 几乎每一个类都会重载该方法 , 以便返回当前状态的正确表示 .
(toString 
方法是一个很重要的方法 )

    19. 通用编程 : 任何类类型的所有值都可以同 object 类性的变量来代替。

   20. 数组列表 :ArrayList 动态数组列表 , 是一个类库 , 定义在 java.uitl 包中 , 可自动调节数组的大小。

   21.class  object 类中的 getclass 方法返回 ckass 类型的一个实例 , 程序启动时包含在 main 方法的类会被加载 , 虚拟机要加载他需要的所有类 , 每一个加载的类都要加载它需要的类。

   22.class 类为编写可动态操纵 java 代码的程序提供了强大的功能反射 , 这项功能为 JavaBeans 特别有用 , 使用反射 Java 能支持 VB 程序员习惯使用的工具。

  能够分析类能力的程序叫反射器 ,Java 中提供此功能的包叫 Java.lang.reflect 反射机制十分强大 .

   1. 在运行时分析类的能力。
   2. 在运行时探察类的对象。
   3. 实现通用数组操纵代码。
   4. 提供方法对象。

     而此机制主要针对是工具者而不是应用及程序。

     反射机制中的最重要的部分是允许你检查类的结构 . 用到的 API :

java.lang.reflect.Field  返回字段 .
java.reflect.Method 
返回方法 .
java.lang.reflect.Constructor 
返回参数 .

  方法指针 :java 没有方法指针 , 把一个方法的地址传给另一个方法 , 可以在后面调用它 , 而接口是更好的解决方案。

   23. 接口 (Interface) 说明类该做什么而不指定如何去做 , 一个类可以实现一个或多个 interface

   24. 接口不是一个类 , 而是对符合接口要求的类的一套规范。

  若实现一个接口需要 2 个步骤 :  

   1. 声明类需要实现的指定接口。
   2. 提供接口中的所有方法的定义。

  声明一个类实现一个接口需要使用 implements  关键字

   class actionB implements Comparable  actionb 需要提供 CompareTo 方法 , 接口不是类 , 不能用 new 实例化一个接口 .

    25. 一个类只有一个超类 , 但一个类能实现多个接口。 Java 中的一个重要接口: Cloneable

   26. 接口和回调 . 编程一个常用的模式是回调模式 , 在这种模式中你可以指定当一个特定时间发生时回调对象上的方法。

  例 :ActionListener  接口监听 .
  类似的 API :java.swing.JOptionPane

    java.swing.Timer
    java.awt.Tookit

   27. 对象 clone:clone 方法是 object 一个保护方法 , 这意味着你的代码不能简单的调用它。

   28. 内部类 : 一个内部类的定义是定义在另一个内部的类。

  原因是 :

   1. 一个内部类的对象能够访问创建它的对象的实现 , 包括私有数据。

   2. 对于同一个包中的其他类来说 , 内部类能够隐藏起来。

   3. 匿名内部类可以很方便的定义回调。

   4. 使用内部类可以非常方便的编写事件驱动程序。

   29. 代理类 (proxy):

   1. 指定接口要求所有代码

   2.object 类定义的所有的方法 (toString equals)

   30. 数据类型 :Java 是强调类型的语言 , 每个变量都必须先申明它都类型 ,java 中总共有 8 个基本类型 .4 种是整型 ,2 种是浮点型 , 一种是字符型 , 被用于 Unicode 编码中的字符 , 布尔型

 
博客网版权所有




















本文转自starger51CTO博客,原文链接:http://blog.51cto.com/starger/17505 ,如需转载请自行联系原作者



相关文章
|
2月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
54 3
|
4天前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####
|
23天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
28天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
1月前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
71 5
|
1月前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
34 1
|
1月前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
45 1
|
1月前
|
Java 数据处理 开发者
Java多线程编程的艺术:从入门到精通####
【10月更文挑战第21天】 本文将深入探讨Java多线程编程的核心概念,通过生动实例和实用技巧,引导读者从基础认知迈向高效并发编程的殿堂。我们将一起揭开线程管理的神秘面纱,掌握同步机制的精髓,并学习如何在实际项目中灵活运用这些知识,以提升应用性能与响应速度。 ####
46 3
|
2月前
|
开发框架 IDE Java
java制作游戏,如何使用libgdx,入门级别教学
本文是一篇入门级教程,介绍了如何使用libgdx游戏开发框架创建一个简单的游戏项目,包括访问libgdx官网、设置项目、下载项目生成工具,并在IDE中运行生成的项目。
53 1
java制作游戏,如何使用libgdx,入门级别教学
|
2月前
|
Java
Java中的多线程编程:从入门到精通
本文将带你深入了解Java中的多线程编程。我们将从基础概念开始,逐步深入探讨线程的创建、启动、同步和通信等关键知识点。通过阅读本文,你将能够掌握Java多线程编程的基本技能,为进一步学习和应用打下坚实的基础。