精华内容
下载资源
问答
  • 小编典典没有证据,我相信您在谈论Java的泛型支持…泛型允许您抽象类型在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常Object会这样做。这导致在运行时做出...

    小编典典

    没有证据,我相信您在谈论Java的泛型支持…

    泛型允许您抽象类型

    在Java 5之前,很难提供能够支持多种不同类型的Objects的类而不必为每种特定情况编写代码,因此人们通常Object会这样做。

    这导致在运行时做出许多困难的选择,您必须进行运行时检查以查看是否有可能将给定的Object强制转换为可用类型…例如

    List myIntList = new LinkedList(); // 1

    myIntList.add(new Integer(0)); // 2

    Integer x = (Integer) myIntList.iterator().next(); // 3

    现在,这已经很明显了,但是如果您仅通过List,则必须检查列表中的每个元素的正确性…

    但是现在,我们可以做到这一点…

    List myIntList = new LinkedList(); // 1'

    myIntList.add(new Integer(0)); // 2'

    Integer x = myIntList.iterator().next(); // 3'

    这是一个合同,基本上说“此列表仅包含整数类型的对象”。

    使用泛型,您可以构造一个单一类,该类能够处理多种不同的数据类型或一系列数据类型(即,限制参数,以便必须从特定的父类型扩展它)。

    Iterator extends Number> itNum;

    基本上说,这将包含对象,从继承Number,包括Integer,Long,Double,Float…

    通常在方法和类的减速中,您会看到类似于…

    public class MyGenericClass {...}

    要么

    public class MyGenericClass {...}

    这使您可以将其T视为具体对象类型来引用,例如…

    public class MyGenericClass {

    private T value;

    public MyGenericClass(T value) {

    this.value = value;

    }

    }

    这允许编译器(和JVM)从本质上T用Concert类型“替换”标记(好吧,这要复杂一点,但这就是魔术)…

    这样可以做…

    ... new MyGenericClass(new MySuperObject());

    ... new MyGenericClass(new MySuperSuperObject());

    并且知道它只会接受我指定的对象类型…

    请仔细阅读第一段中的链接,我敢肯定它会比我能做到的更多;)

    2020-10-15

    展开全文
  • 1. 首先看下定义的注解类:类注解定义, MyClassAnnotation.java:[java] view plain copypackage ...import java.lang.annotation.*;/*** Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com* Date: 2012-1-29...

    1. 首先看下定义的注解类:

    类注解定义, MyClassAnnotation.java:

    [java] view plain copy

    package com.ross.annotation;

    import java.lang.annotation.*;

    /**

    * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com

    * Date: 2012-1-29

    * Since: MyJavaExpert v1.0

    * Description: class annotation

    */

    @Retention (RetentionPolicy.RUNTIME)

    @Target (ElementType.TYPE)

    public @interface MyClassAnnotation

    {

    String uri();

    String desc();

    }

    默认构造方法注解定义,MyConstructorAnnotation.java:

    [java] view plain copy

    package com.ross.annotation;

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    /**

    * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com

    * Date: 2012-1-29

    * Since: MyJavaExpert v1.0

    * Description: Constructor annotation

    */

    @Retention (RetentionPolicy.RUNTIME)

    @Target (ElementType.CONSTRUCTOR)

    public @interface MyConstructorAnnotation

    {

    String uri();

    String desc();

    }

    方法注解定义,MyMethodAnnotation.java:

    [java] view plain copy

    package com.ross.annotation;

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    /**

    * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com

    * Date: 2012-1-29

    * Since: MyJavaExpert v1.0

    * Description: method annotation

    */

    @Retention (RetentionPolicy.RUNTIME)

    @Target (ElementType.METHOD)

    public @interface MyMethodAnnotation

    {

    String uri();

    String desc();

    }

    字段注解定义, MyFieldAnnotation.java:

    [java] view plain copy

    package com.ross.annotation;

    import java.lang.annotation.ElementType;

    import java.lang.annotation.Retention;

    import java.lang.annotation.RetentionPolicy;

    import java.lang.annotation.Target;

    /**

    * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com

    * Date: 2012-1-29

    * Since: MyJavaExpert v1.0

    * Description: field annotation

    */

    @Retention (RetentionPolicy.RUNTIME)

    @Target (ElementType.FIELD)

    public @interface MyFieldAnnotation

    {

    String uri();

    String desc();

    }

    2. 再看下我们注解的应用和测试:

    在类上面使用了MyClassAnnotation注解, 默认构造方法上使用了MyConstructorAnnotation注解, 自定义方法上使用了MyMethodAnnotation注解, 自定义字段上使用了MyFieldAnnotation注解, 在Mail函数中则实现了访问这些注解,并打印注解信息.

    MySample.java:

    [java] view plain copy

    package com.ross.annotation;

    import java.lang.reflect.*;

    /**

    * Author: Jiangtao He; Email: ross.jiangtao.he@gmail.com

    * Date: 2012-1-29

    * Since: MyJavaExpert v1.0

    * Description: This class is used to show how to use the annotation of each level

    */

    @MyClassAnnotation (uri = "com.ross.MySample" , desc = "The class name" )

    public class MySample

    {

    @MyFieldAnnotation (uri = "com.ross.MySample#id" , desc = "The class field" )

    public String id;

    /**

    * Description: default constructor

    */

    @MyConstructorAnnotation (uri = "com.ross.MySample#MySample" , desc = "The default constuctor" )

    public MySample()

    {

    }

    /**

    * Description: normal method

    */

    @MyMethodAnnotation (uri = "com.ross.MySample#setId" , desc = "The class method" )

    public void setId(String id)

    {

    this .id = id;

    }

    /**

    * Description: MyAnnotation test

    * @throws NoSuchMethodException

    * @throws SecurityException

    * @throws NoSuchFieldException

    */

    public static void main(String[] args) throws SecurityException,

    NoSuchMethodException, NoSuchFieldException

    {

    MySample oMySample = new MySample();

    // get class annotation

    MyClassAnnotation oMyAnnotation = MySample.class

    .getAnnotation(MyClassAnnotation.class );

    System.out.println("Class's uri: " + oMyAnnotation.uri() + "; desc: "

    + oMyAnnotation.desc());

    // get constructor annotation

    Constructor oConstructor = oMySample.getClass().getConstructor();

    MyConstructorAnnotation oMyConstructorAnnotation = (MyConstructorAnnotation) oConstructor

    .getAnnotation(MyConstructorAnnotation.class );

    System.out.println("Constructor's uri: "

    + oMyConstructorAnnotation.uri() + "; desc: "

    + oMyConstructorAnnotation.desc());

    // get method annotation

    Method oMethod = oMySample.getClass().getDeclaredMethod("setId" ,String. class );

    MyMethodAnnotation oMyMethodAnnotation = oMethod

    .getAnnotation(MyMethodAnnotation.class );

    System.out.println("Method's uri: " + oMyMethodAnnotation.uri()

    + "; desc: " + oMyMethodAnnotation.desc());

    // get field annotation

    Field oField = oMySample.getClass().getDeclaredField("id" );

    MyFieldAnnotation oMyFieldAnnotation = oField

    .getAnnotation(MyFieldAnnotation.class );

    System.out.println("Field's uri: " + oMyFieldAnnotation.uri()

    + "; desc: " + oMyFieldAnnotation.desc());

    }

    }

    控制台打印结果:

    [plain] view plain copy

    Class's uri: com.ross.MySample; desc: The class name

    Constructor's uri: com.ross.MySample#MySample; desc: The default constuctor

    Method's uri: com.ross.MySample#setId; desc: The class method

    Field's uri: com.ross.MySample#id; desc: The class field

    至此本实例就完成了, 其实就是抓住两点一个是定义注解类,另外一个是如何访问注解, 就算是学会了.

    展开全文
  • java中Super到底是什么意思

    千次阅读 2021-02-12 11:09:53
    这里面的this就是一个特殊语法,不是变量,没有什么类型。2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身;它有动态类型,就是当前...

    要说super就先要说this。

    "this",作为一个特殊的关键字,它的规则如下:

    1。可以表示构造函数传递。this(a,b)表示调用另外一个构造函数。这里面的this就是一个特殊语法,不是变量,没有什么类型。

    2。可以在一个类的非static成员内部使用,表示当前这个对象。此时,this就是一个final的普通变量,它有静态类型,就是这个类C本身;它有动态类型,就是当前这个对象的类型。你可以对它调用成员函数,把它传递给别的函数,等等等等。只要一个C类型的final变量可以出现的地方,它就可以出现。

    "super"。它和"this"类似,但是也有不同的地方。

    1。表示调用父类的构造函数。也是一个特殊语法,不是变量,没有什么类型。

    2。可以在一个类的非static成员内部使用。比如super.method()。

    但是,注意,这个super.method()只是长得跟some_var.method()一样,一个语法糖而已。实质上,"super"根本不是一个变量。

    为什么不是?因为如果是就坏了。java里面有一个金科玉律:任何public非static函数的调用都是多态的。

    所以,如果super是个变量,也指向当前对象,那么,不管super的静态类型是什么super.method()必然调用的是子类的那个版本,而不会是我们期望的,静态地选择父类的那个版本。

    所以,你只要把super.xxx看成一个特殊的语法,比如理解为“super::xxx”就好了。

    既然super不是一个变量,那么不能把它象一个普通变量那样"==",或者传递给某个函数就看起来很正常了,是么?何况,你其实也用不着它,有this你这些要求就都可以办到了。

    3。super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法。

    借鉴于:https://www.cnblogs.com/wulianshang/p/5809898.html

    3."超"关键字(super keyword)

    马克-to-win,Super是一个参考(或说指针)指向他紧邻的父类(见下面的例子)。

    用super可以指向被隐藏的父类的同名成员。

    3.1 super指向父类的成员

    注意: 下例中:子类和父类都有i,我们一共有两个i,用super可以指向前一个父类的i。

    例1.3.1---

    class AMark_to_win {

    int i;

    }

    class B extends AMark_to_win {

    int i;

    public B(int x, int y) {

    super.i = x;//AMark_to_win 的 i被赋值

    i = y;//B的i被赋值

    }

    public void show() {

    System.out.println("i in superclass: " + super.i);

    System.out.println("i in subclass: " + i);

    }

    }

    public class Test {

    public static void main(String[] args) {

    B b = new B(2, 3);

    b.show();

    }

    }

    ————————————————

    版权声明:本文为CSDN博主「mark_to_win」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/mark_to_win/article/details/38663289

    展开全文
  • java什么是事务意思概念2018/6/19 22:27:00 阅读:744次java什么是事务意思概念来自简单日记网精选推荐。事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元...

    java什么是事务意思概念

    2018/6/19 22:27:00 阅读:744次

    java什么是事务意思概念来自简单日记网精选推荐。事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务(transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如sql,c++或java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。

    java中的事务处理

    一般情况下,j2ee应用服务器支持jdbc事务、jta(java transaction api)事务、容器管理事务。一般情况下,最好不要在程序中同时使用上述三种事务类型,比如在jta事务中嵌套jdbc事务。第二方面,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面我们列举两种事务处理方式。

    1、javabean中使用jdbc方式进行事务处理

    在jdbc中怎样将多个sql语句组合成一个事务呢?在jdbc中,打开一个连接对象connection时,缺省是auto-commit模式,每个sql语句都被当作一个事务,即每次执行一个语句,都会自动的得到事务确认。为了能将多个sql语句组合成一个事务,要将auto-commit模式屏蔽掉。在auto-commit模式屏蔽掉之后,如果不调用commit()方法,sql语句不会得到事务确认。在最近一次commit()方法调用之后的所有sql会在方法commit()调用时得到确认。

    public int delete(int sid) { dbc = new databaseconnection(); connection con = dbc.getconnection(); try {  con.setautocommit(false);// 更改jdbc事务的默认提交方式  dbc.executeupdate("delete from bylaw where id=" + sid);  dbc.executeupdate("delete from bylaw _content where id=" + sid);  dbc.executeupdate("delete from bylaw _affix where bylawid=" + sid);  con.commit();//提交jdbc事务  con.setautocommit(true);// 恢复jdbc事务的默认提交方式  dbc.close();  return 1; } catch (exception exc) {  con.rollback();//回滚jdbc事务  exc.printstacktrace();  dbc.close();  return -1; }}  2、sessionbean中的jta事务

    jta 是事务服务的 j2ee 解决方案。本质上,它是描述事务接口(比如 usertransaction 接口,开发人员直接使用该接口或者通过 j2ee 容器使用该接口来确保业务逻辑能够可靠地运行)的 j2ee 模型的一部分。jta 具有的三个主要的接口分别是 usertransaction 接口、transactionmanager 接口和 transaction 接口。这些接口共享公共的事务操作,例如 commit() 和 rollback(), 但是也包含特殊的事务操作,例如 suspend(),resume() 和 enlist(),它们只出现在特定的接口上,以便在实现中允许一定程度的访问控制。例如,usertransaction 能够执行事务划分和基本的事务操作,而 transactionmanager 能够执行上下文管理。

    应用程序可以调用usertransaction.begin()方法开始一个事务,该事务与应用程序正在其中运行的当前线程相关联。底层的事务管理器实际处理线程与事务之间的关联。usertransaction.commit()方法终止与当前线程关联的事务。usertransaction.rollback()方法将放弃与当前线程关联的当前事务。

    public int delete(int sid) { databaseconnection dbc = null; dbc = new databaseconnection(); dbc.getconnection(); usertransaction transaction = sessioncontext.getusertransaction();//获得jta事务 try {  transaction.begin(); //开始jta事务  dbc.executeupdate("delete from bylaw where id=" + sid);  dbc.executeupdate("delete from bylaw _content where id=" + sid);  dbc.executeupdate("delete from bylaw _affix where bylawid=" + sid);  transaction.commit(); //提交jta事务  dbc.close();  return 1; } catch (exception exc) {  try {   transaction.rollback();//jta事务回滚  }  catch (exception ex) {   //jta事务回滚出错处理   ex.printstacktrace();  }  exc.printstacktrace();  dbc.close();  return -1; }}

    展开全文
  • 那么原子是什么,静止是什么意思呢? 为什么Java中没有其他类型的线程安全方法?“原子”是什么意思?当方法调用似乎立即生效时,该方法就是原子的。 因此,其他线程在方法调用之前或之后只能看到状态,而没有...
  • 通过HTTP访问的每个资源都是单个请求,它们之间...标签命中同一个服务器,将有四个TCP连接协商和打开,四个数据传输,四个连接关闭。在服务器上没有状态保存在协议级别,服务器在你进来时知道你的任何事情。HTTP ...
  • "Java"的中文意思什么

    千次阅读 2021-03-09 06:40:35
    展开全部Java名词解释e69da5e6ba903231313335323631343130323136353331333231383336Abstract class 抽象类:抽象类是不允许实例化的类,因此一般它需要被进行扩展继承。Abstract method 抽象方法:抽象方法即不包含...
  • 什么是Java事务

    2021-02-28 18:28:43
    同时,应用程序一定不要对 XA 连接调用 java.sql.Connection.commit() 或者 java.sql.Connection.rollback() 。相反,应用程序应该使用 UserTransaction.begin()、 UserTransaction.commit() 和 serTransaction....
  • java中dao是什么意思

    千次阅读 2020-12-22 18:05:36
    4、数据库连接和关闭工具类: 避免了数据库连接和关闭代码的重复使用,方便修改。 DAO 接口: public interface PetDao { /** * 查询所有宠物 */ List findAllPets() throws Exception; } DAO 实现类: public class ...
  • 我在读这个例子: EntityManager em = ...... 我不知道这里突出了什么意思? 由于下划线是一个类名的有效部分,我不明白为什么这可以在JPA中使用. 我在我的代码中检查了一个现有的实体,当然我的类不能被解析为ClassName_
  • 想问一下,在java脚本中写的问号是什么意思?mip版关注:218答案:6悬赏:0解决时间 2021-01-17 12:12已解决2021-01-16 13:44比如xmlHttpRequest.open("POST", "/control/user/manage.do?method=generate", true);这句...
  • java ssh是什么

    2021-02-28 09:19:34
    客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。...
  • java命令语法首先,您需要了解使用java(或javaw)命令启动程序的正确方法。正常的syntax1是这样的:java [ ... ] [ ...]其中是一个命令行选项(以“ – ”开头),是完全限定的Java类名,是一个传递给您的应用程序的...
  • 1import java。sql。Connection;2import java。sql。DriverManager;3import java。sql。SQLException;45public class ConnDB {67 Connection conn;8910 public Connection GetConn() {11 try {12 Class。forName(...
  • } } ///:~ 我不得不说自己并没有真正理解这儿都发生了什么事情,这些概念都是从Elliotte Rusty Harold编著的《Java Network Programming》里得来的,该书由O'Reilly于1997年出版。他在书中提到了Java连网函数库中...
  • 展开全部socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。...-----J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网...
  • java.lang.nullpointerexception这个异常32313133353236313431303231363533e58685e5aeb931333264646537大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的...
  • java.sql.SQLException: com.sqljdbc.Driver什么意思啊?关注:51答案:5mip版解决时间 2021-01-30 19:22提问者雨份凉伴2021-01-30 15:58严重: Exception opening database connectionjava.sql.SQLException: ...
  • 什么是java表达式

    2021-02-27 10:14:30
    什么是java表达式在Java语言中,表达式是由变量或常量与符号的组合,例如:num1+num2;或age>18;等。表达式中常用的符号称为运算符,这些运算符作用的变量或常量称为操作数。例如:在表达式age>18中,age和18是...
  • Java中的Object是什么

    千次阅读 2021-02-12 11:13:14
    1.Object类是所有类的父类,位于java.lang包中。2.数组也是Object类的子类。3.Object类的常用方法有:toString();equals();hashCode();objects这种参数定义是在不确定方法参数的情况下的一种多态表现形式。即这个...
  • 什么是Java程序的耦合

    千次阅读 2021-03-09 04:24:42
    耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。 程序讲究的是低耦合,高内聚。就是同一个模块内的各个元素之间要高度紧密,但是...
  • java api接口有两种意思,分别是:1、应用程序编程接口,API是一些预先定义的函数;2、对API应用程序接口的解释、说明,便于用户使用里面的接口、类和方法。API是一些预先定义的函数,目的是提供应用程序与开发人员...
  • java类加载机制是什么

    2021-03-12 21:27:08
    本篇文章将介绍Java的类加载机制的步骤,请看下列详细内容。类加载机制类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括了:加载(Loading)、验证(Verification)、准备(Preparation)、解析...
  • 问题:输入流将数据从文件,标准输入或其他外部输入设备中加载道内存,在 java 中其对应于抽象类()及其子类。java.io.InputStreamjava.io.OutputStreamjava.os.InputStreamjava.os.OutputStream答案:1、java.io....
  • Java方法是什么意思

    2021-07-28 14:47:08
    Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的优点 1.使程序变得更简短而清晰。 2.有利于程序维护。 3....
  • 有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)? 所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可...
  • 这里是修真院后端小课堂,每篇分享文从...】【修真院java小课堂】Spring中的IOC是什么意思大家好,我是IT修真院武汉分院第17期的学员汪天驰,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java任务...
  • JAVA NIO是什么(zz)

    2021-03-04 06:52:21
    JAVA NIO是什么?1.基本概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 ...
  • 我不是问Java的参数传递是如何工作的.我知道看起来像一个持有对象的变量实际上是一个包含对象的引用的变量,该引用是通过值传递的.在这里(在链接的线程和其他)以及其他地方,有很多关于该机制的精细解释.问题是关于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 259,666
精华内容 103,866
关键字:

java链接是什么意思

java 订阅