Java init

简介: Java新手入门的30个基本概念 在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。  Java概述:  目前Java主要应用于中间件


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


在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念。 


Java概述: 


目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.

Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.

Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出。 



javaSe看成是java基础。J2EE看成是应用。

J2EE有两条路线:

JSF+EJB3+JPA 与 轻量级的Struts2+Spring+Hibernate.

现在中小企业流行的是轻量级的SSH框架web开发,大型企业大型项目才用到EJB3为核心的技术。

所以学习的话先从java基础、JSP、servlet、jdbc、SSH框架开始学,还要掌握MySQL或者Oracle数据库


Mac 上的 Java文章  


http://blog.csdn.net/sike2008/article/details/42468729 ()

http://www.cnblogs.com/guogangj/p/3725371.html


Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。

Java EEJava Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。

J2EE的实现之一Spring,其社区所支持的三十多个项目,涵盖了web、大数据、云计算、机器学习、移动终端、任务调度、插件体系、开发IDE、远程调用、消息中间件等,已经成了企业级开发中的事实标准。基于Http协议与Servlet写出来的

Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。




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编码中的字符,布尔型。
















目录
相关文章
|
Java 编译器 程序员
阿里面试官问Java中init和clinit区别,这么回答offer应该稳了
阿里面试官问Java中init和clinit区别,这么回答offer应该稳了
139 0
阿里面试官问Java中init和clinit区别,这么回答offer应该稳了
|
8天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
17天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
4天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
23 9
|
7天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
4天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
7天前
|
Java
JAVA多线程通信:为何wait()与notify()如此重要?
在Java多线程编程中,`wait()` 和 `notify()/notifyAll()` 方法是实现线程间通信的核心机制。它们通过基于锁的方式,使线程在条件不满足时进入休眠状态,并在条件满足时被唤醒,从而确保数据一致性和同步。相比其他通信方式,如忙等待,这些方法更高效灵活。 示例代码展示了如何在生产者-消费者模型中使用这些方法实现线程间的协调和同步。
21 3
|
6天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
7天前
|
Java
java小知识—进程和线程
进程 进程是程序的一次执行过程,是系统运行的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。 线程 线程,与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间做切换工作时,负担要比
17 1