2020-10-20 Java基础_定义和语法

【标识符】:在Java中,标识符用于为程序中的常量、变量、方法、类、接口和包命名
      * 标识符由字母、数字、下划线(_)或美元符号($)组成
      * 标识符的首字母以字母、下划线或美元符号开头,不能以数字开头
      * 标识符的命名不能以与关键字、布尔值(true、false)和null相同+++
      * 标识符区分大小写,没有长度限制,坚持见名知义的原则
      * 第一个字符不能是数字,不能是Java中的保留关键字

【命名规则】:
      在java中,自有一套命名规则:
         ① 包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event;
         ② 类名/接口名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorldApp、interface Collection;
         ③ 方法名:方法名的第一个单词应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。参数的名字必须和变量的命名规范一致。
         ④ 变量名:变量的名字可大小写混用,但首字符应小写。词由大写字母分隔,限制用下划线,限制使用美元符($),因为这个字符对内部类有特殊的含义。如:inputFileSize。
         ⑤ Static Final 变量(相当于常量)的命名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,例如:int YEAR, int WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,大写字母把单词隔开。


【定义类】:class是定义类的关键字,类名首字母大写--- [访问修饰符] class 类名{...}
【定义属性】: [访问修饰符] 数据类型 属性名; 
【定义方法】:void表示无返回值--- [访问修饰符] 返回类型 方法名(参数类型 参数名,参数类型2 参数名2,...){...}
【创建对象】:左边类名指对象的数据类型,右边类名()指类的构造方法,new是关键字--- 类名 对象名 = new 类名();
      定义:一个对象就称为类的一个实例 (例:Person hanbing = new Person( );) ---即:实例化 
      使用对象:引用对象的属性: 对象名.属性;
      引用对象的方法: 对象名.方法名();    
【常量】:访问修饰符 static final 数据类型 常量名 = 值;         
      定义:同时被static 和final修饰的变量
         ①常量名命名规范企业级要求:所有字母大写
         ② 常量必须在定义的同时给其赋值
【变量】:[修饰符]变量类型 变量名 [=初始值];   例:int a = 5;     
【构造方法】:用于保证字段能被正确的初始化(Java中,当类创建一个对象时,会自动调用该类的构造方法,分为默认构造方法和带参构造方法)
      *构造方法没有返回值
      *默认构造方法没有参数,因此参数列表可选
      *构造方法名与类名相同--- [访问修饰符] 方法名([参数列表]){...}       
【抽象类】:抽象类中已经实现的方法可以被其子类使用,使代码可以被复用;同时提供了抽象方法,保证了子类具有自身的独特性(其局限可用接口)
      ①定义:Java中,当一个类被abstract关键字修饰时,该类称为抽象类(不能实例化)                   
      ②语法:abstract class <类名>{}      
【抽象方法】:
      ①定义:Java中,当一个类的方法被abstract关键字修饰时,该方法称为抽象方法(无方法体)
      ②语法:[访问修饰符] abstract <返回类型> <方法名>([参数列表]);  --关键字abstract表示该方法被定义为抽象方法
【接口】:接口是一个不能被实例化的类型(接口中访问修饰符只能是:public)
      ①定义语法:public interface 接口名{//接口成员}
      ②实现接口的语法:public 类名 implements 接口名{实现方法 普通方法}
      --实现接口的类必须实现接口中定义的所有抽象方法
【数组】:数据类型 数组名[] = new 数据类型[数组长度]; 或 数据类型[] 数组名 = new 数据类型[数组长度];   一维数组
                  数据类型 数组名[][] = new 数据类型[][];     二维数组 ...多维数组


【实例化】:简单说,就是产生一个CLASS的对象,把抽象的东西具体话,把泛指的东西变成一个个例
【初始化】:拿一个程序来说就是先加载基本的数据,拿变量来说就是给它一个初始值
【遍历输出】:遍历输出就是讲一个数组或者集合通过指针遍历后显示出来
    (每一个集合都会有一个下标,也就是游标一样的东西来标注某个元素在集合中的位置遍历就是靠这个游标来遍历的)
Test test = new Test("a"); 解析实例化/初始化 堆/栈------------------
【实例化和初始化区别】: 
      例如:Test test = new Test("a");
      实例化就是new,通过构造器开辟内存空间,生成一个对象实例(new对象时,都是用构造方法进行实例化的)。
      初始化就是给已有的实例或者变量进行赋予初始值,不只针对于对象。
      实例化是初始化的其中一部分,初始化还包括类本身的加载,比如静态代码的执行和静态成员变量的初始化。实例化就是new一个新的对象到堆内存空间(通过构造器开辟内存空间,生成一个对象实例),但静态化的代码就是类本身拥有的内存空间,被所有new的实例对象。
      不管你new多少个对象,类的静态代码部分只执行一次,就是在初始化时先加载类,才能创建对象。


【JavaIDL】:使分布式、支持Web的Java应用可以基于IIOP协议透明地调用远程服务。
【JVM】:是基于堆栈的虚拟机,每个Java程序在一个独立的JVM实例上运行,每个JVM实例对应一个堆,同个java程序内的多线程运行在同个JVM实例上,多个线程之间共享堆内存(多线访问堆时,要实现数据的同步)。
【sdk (软件开发工具包) 】:包含在Java JDK中,一般都是一些软件工程师为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。
【B/S结构 (Browser/Server模式,浏览器/服务器模式)】:是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美 ['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

【J2EE/javaEE】:JavaEE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。在2004年底中国软件技术大会Ioc微容器(也就是Jdon框架的实现原理)演讲中指出:我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
【EJB (Enterprise JavaBean) 】:是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB 是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。 在J2EE里,Enterprise Java Beans(EJB)称为Java 企业Bean,是Java的核心代码,分别是会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(MessageDriven Bean)。在EJB3.0推出以后,实体Bean被单独分了出来,形成了新的规范JPA。
【EJB】:企业级JavaBean(Enterprise JavaBean EJB)是一个用来构筑企业级应用的服务器端可被管理组件。EJB规范的目的在于为企业及应用开发人员实现后台业务提供一个标准方式,从而解决一些此前总是在作业过程中总是重复发生的问题。EJB最早于1997年由IBM提出,旋即被太阳微系统采用并形成标准(EJB 1.0 和EJB 1.1)。其特点包括网络服务支持和核心开发工具(SDK)。EJB以一个标准方式自动处理了诸如数据持久化,事务集成,安全对策等不同应用的共有问题,使得软件开发人员可以专注于程序的特定需求而不再饱受那些非业务元素的困扰。
【javaBean】: JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
    https://www.cnblogs.com/mq0036/p/3873406.html  JavaBean简单及使用
    http://blog.sina.com.cn/s/blog_b1e6f3180102wgct.html    

【Java接口】:是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
【API (Application Programming Interface) 】:应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
【JavaMail】:顾名思义,提供给开发者处理电子邮件相关的编程接口,是Sun的API之一。
【JNDI (Java Naming and Directory Interface,Java命名和目录接口) 】:是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。
【RMI (Remote Method Invoke) 】:远程方法请求,远程接口调用
【JMS (Java平台上的专业技术规范) 】:即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

【JTA(Java Transaction API)】:JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。
【JAF(JavaBeans Activation Framework 数据处理框架)】:是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。JAF的主要作用是让java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。
【DB (Database) 】:数据库
【JDBC (Java DataBase Connectivity,java数据库连接) 】:是一种用于执行SQL语句的Java API
【ODBC(Open Database Connectivity,ODBC)】:开放数据库互连 ,是数据库访问接口标准
【DAO】:数据访问对象
【RDBMS】:关系型数据库管理系统
【BO(business object)】:业务对象,封装业务逻辑的java对象,通过调用DAO方法,接合PO,VO进行业务操作。
【ORM(object relation mapping)】:对象关系映射
【Maven项目】:就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。

【POJO (Plain Ordinary Java Object) 】: 简单无规则java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。VO和PO应该都属于它。
【PO(persitant object)】:持久对象,可以看成是与数据库中的表映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO不包含任何对数据库的操作。
【VO(value object)】:值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要,个人觉得同DTO(数据传输对象),在web上传递。
【POJO与javabean的区别】:
POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。
Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。

【JTS】:只是一个组件事务监视器(有时也称为 对象事务监视器(object transaction monitor)),或称为 CTM。
对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能:
1)、访问数据源中的数据.
2)、获知数据源的数据类型.
3)、获知可对数据进行的各种操作.
4)、用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象.
javaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消息类型。
【JPA2.0 】: 抄hibernate的先进理念 :JPA(全是接口)是抽象,hibernate(提供实现类)是它的实现
工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

【JNA (Java Native Access )】:提供一组Java工具类用于在运行期间动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
【JNI】:是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。从Java1.1开始,JNI标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。
      java调用dll动态库的方法,总的有三种:JNI、JNA、JNative,其中JNA调用DLL是最方便的。
      JNA(Java Native Access )提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码。开发人员只要在一个java接口中描述目标native library的函数与结构,JNA将自动实现Java接口到native function的映射。
      JNI(Java Native Interface )提供了若干的API实现了Java和其他语言的通信(主要是C&C++)。
            https://www.cnblogs.com/new-life/p/9345840.html   java使用JNA框架调用dll动态库
            https://blog.csdn.net/dmw412724/article/details/81477546   JNI详解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值