精华内容
下载资源
问答
  • Java关键字:51个+2个保留字 = 53个关键字 1. Java的保留关键字 const —— 常量,常数:用于修改字段或...3. 定义类、接口、抽象类实现接口、继承类的关键字、实例对象(6个) class(类):public class A(){}

    Java关键字:51个+2个保留字 = 53个关键字

    1. Java的保留关键字

    • const —— 常量,常数:用于修改字段或局部变量的声明。
    • goto —— 转到:指定跳转到标签,找到标签后,程序将处理从下一行开始的命令

    2. 访问修饰符的关键字(3个)

    • public(公有的):可跨包
    • protected(受保护的):当前包内可用
    • private(私有的):当前类可用

    3. 定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(6个)

    • class(类):public class A(){}花括号里是已实现的方法体,类名需要与文件名相同
    • interface(接口):public interface B(){}花括号里有方法体,但没有实现,方法体橘子后面是英文分号;结尾
    • abstract(声明抽象):public abstract class C(){}介于类与接口中间,可以有,也可以没有已经实现的方法体
    • implements(实现):用于类或接口,实现接口public class A interface B(){}
    • extends(继承):用于继承类public class A extends D(){}
    • new(创建新对象):A a=new A();A表示一个类

    4. 包的关键字(2个)

    • import(包的关键字):当使用某个包的一些类时,仅需要类名,然后使用ctrl + shift + o或者选定类名(类或属性或方法)按住ctrl + 单击,即可自动插入类所在的包
    • package(定义包的关键字):将所有相关的类放在一个包类以便查找修改等

    5. 数据类型的关键字(12个)

    • byte (字节型):8 bit
    • char (字节型):16 bit
    • boolean (布尔型):–
    • short (短整型):16 bit
    • int (整型):32 bit
    • float (浮点型):32 bit
    • long (长整型):64 bit
    • double (双精度):64 bit
    • void (无返回):public void A(){}其他需要反回的经常与return连用
    • null (空值)
    • true (真)
    • false (假)

    6. 条件循环(流程控制)(12个)

    • if (如果) :if(条件语句{执行代码}如果条件语句成立,就开始执行{}里面的内容
    • else (否则,或者) :常与if连用,用法相同:if(…){…}else{…}
    • while (当什么时候):while(条件语句){执行代码}
    • for(满足三个条件时):for(初始化循环变量;判断条件;循环变量值{}
    • switch (选择结构):switch(表达式){case 常量表达式1:语句1;…case 常量表达式2;语句2;default:语句;}default就是如果没有匹配的case就执行它,default并不是必须的。case后的语句可以不用大括号。
    • case (匹配switch的表达式里的结果) :同上
    • default (默认): default就是如果没有匹配的case就执行它, default并不是必须的
    • do (运行) :通常与while连用
    • break (跳出循环):直接跳出循环,执行循环体后的代码
    • continue (继续) : 中断本次循环,并开始下一轮循环
    • return (返回) :return 一个返回值类型
    • instanceof (实例):一个二元操作符,和==、>、<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据

    7. 修饰方法、类、属性和变量(9个)

    • static(静态的):属性和方法都可以用static修饰,直接使用类名、属性和方法名。只有内部类可以使用static关键字修饰,调用直接使用类名、内部类类名进行调用。static可以独立存在
    • final(最终的不可被改变):方法和类都可用final来修饰;final修饰的类是不能被继承的;final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量
    • super(调用父类的方法):常见public void paint(Graphics g){super.paint(g);…}
    • this(当前类的父类的对象):调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等
    • native(本地)
    • strictfp(严格,精准) 详细介绍
    • synchronized(线程,同步):一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块
    • transient(短暂) 详细解释
    • volatile(易失)

    8. 错误处理(5个)

    • catch(处理异常):(1)try+catch 程序流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句
     ​                 (2)try+catch+finally 程序流程是:运行到try块中,如果有异常抛出,则转到catch垮,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后                         面的语句
    
     ​                 (3)try+finally 程序流程是:运行到try块中,如果有异常抛出,则转到finally块的代码。
    
    • try(捕获异常)

    • finally(有没有异常都执行)

    • throw(抛出一个异常对象):一些可以导致程序出问题,比如书写错误,逻辑错误或者是api的应用错误等等。为力防止程序的崩溃就要预先检测这些因素,所以java使用了异常这个机制。在java中异常是靠“抛出” 也就是英语的“throw”来使用的,意思是如果发现到什么异常的时候就把错误信息“抛出”

    • throws(声明一个异常可能被抛出):把异常交给他的上级管理,自己不进行异常处理

    9. 其他(2个)

    • enum(枚举,列举,型别)
    • assert(断言)
    展开全文
  • 对于使用不区分大小写的数据库模式的JPA实体模型,当我使用@IdClass批注时,始终会出现“实例标识符已更改”异常。对于具有“字符串”主键的对象,当数据库中存在一种情况的字符串并且使用相同的字符串(仅大小写不同...

    对于使用不区分大小写的数据库模式的JPA实体模型,当我使用@IdClass批注时,始终会出现“实例标识符已更改”异常。对于具有“字符串”主键的对象,当数据库中存在一种情况的字符串并且使用相同的字符串(仅大小写不同)执行查询时,将发生错误。

    我看过其他的SO答案,它们的形式是:a)不要修改主键(我不是),b)equals()/

    hashCode()实现有缺陷。对于’b’,我尝试使用toLowerCase()和,equalsIgnoringCase()但无济于事。[另外,似乎在“更改”发生时,Hibernate代码直接设置属性,而不是调用属性设置器。

    这是具体的错误:

    Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException:

    identifier of an instance of db.Company was altered

    from {Company.Identity [62109154] ACURA}

    to {Company.Identity [63094242] Acura}

    问:对于包含公司“ Acura”(作为主键)的不区分大小写的数据库,如何使用@IdClass随后查找其他大写字母?

    这是有问题的代码(从一个空的数据库开始):

    public class Main {

    public static void main(String[] args) {

    EntityManagerFactory emf =

    Persistence.createEntityManagerFactory("mobile.mysql");

    EntityManager em = emf.createEntityManager();

    em.getTransaction().begin();

    Company c1 = new Company ("Acura");

    em.persist(c1);

    em.getTransaction().commit();

    em.getTransaction().begin();

    c1 = em.find (Company.class, new Company.Identity("ACURA"));

    em.getTransaction().commit();

    em.close();

    System.exit (0);

    }

    }

    这是“ db.Company”实现:

    @Entity

    @IdClass(Company.Identity.class)

    public class Company implements Serializable {

    @Id

    protected String name;

    public Company(String name) {

    this.name = name;

    }

    public Company() { }

    @Override

    public int hashCode () {

    return name.hashCode();

    }

    @Override

    public boolean equals (Object that) {

    return this == that ||

    (that instanceof Company &&

    this.name.equals(((Company) that).name));}

    @Override

    public String toString () {

    return "{Company@" + hashCode() + " " + name + "}";

    }

    //

    public static class Identity implements Serializable {

    protected String name;

    public Identity(String name) {

    this.name = name;

    }

    public Identity() { }

    @Override

    public int hashCode () {

    return name.hashCode();

    }

    @Override

    public boolean equals (Object that) {

    return this == that ||

    (that instanceof Identity &&

    this.name.equals(((Identity)that).name));

    }

    @Override

    public String toString () {

    return "{Company.Identity [" + hashCode() + "] " + name + "}";

    }

    }

    }

    注意:我知道@IdClass只有一个主键时不需要使用;上面是问题的最简单的例子。

    如我所说,即使将hashCode()/ equals()方法区分大小写,我仍然认为该问题仍然存在。但是,建议。

    ...

    INFO: HHH000232: Schema update complete

    Hibernate: insert into Company (name) values (?)

    Hibernate: select company0_.name as name1_0_0_ from Company company0_ where company0_.name=?

    Exception in thread "main" javax.persistence.RollbackException: Error while committing the transaction

    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:94)

    at com.lambdaspace.Main.main(Main.java:24)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:483)

    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

    Caused by: javax.persistence.PersistenceException: org.hibernate.HibernateException: identifier of an instance of db.Company was altered from {Company.Identity [62109154] ACURA} to {Company.Identity [63094242] Acura}

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763)

    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)

    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:82)

    ... 6 more

    Caused by: org.hibernate.HibernateException: identifier of an instance of db.Company was altered from {Company.Identity [62109154] ACURA} to {Company.Identity [63094242] Acura}

    at org.hibernate.event.internal.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:80)

    at org.hibernate.event.internal.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:192)

    at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:152)

    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:231)

    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:102)

    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:55)

    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1222)

    at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:425)

    at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)

    at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:177)

    at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:77)

    ... 6 more

    展开全文
  • Java变量和标识符

    2017-10-26 00:32:53
    Java变量局部变量定义在方法体内的变量,其生命周期只在方法内。...成员变量非静态变量,属于类的某个实例对象 成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候被实例化。成员变量

    Java变量

    局部变量

    定义在方法体内的变量,其生命周期只在方法内。
    在方法、构造方法或者语句块中定义的变量成为局部变量;变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

    类变量

    静态变量,只属于类
    类变量也声明在类中,方法体之外,但必须声明为static类型。

    成员变量

    非静态变量,属于类的某个实例对象
    成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候被实例化。成员变量可以被类中的方法、构造方法和特定的语句块访问。

    标识符

    在JAVA的组成部分中包括了对包、类、方法、变量等的起名,这些名字是要有一定的规则的。

    标识符可以包含数字、字母、$、_,但是不能以数字开头
    关键字不能用作标识符
    标识符是大小写敏感的

    展开全文
  • 对象名也是用户标识符基本类型的变量遵循同样的命名规则使用规则。 声明一个变量,并不会分配一个完整的对象所需要的内存空间,只是将对象名所代表的变量看成是一个引用变量,并为它分配所需内存空间,它所...

    1. 声明对象
    对象的声明和基本类型的数据声明在形式上是一样的:
    类名 对象名;
    对象名也是用户标识符,和基本类型的变量遵循同样的命名规则和使用规则。
    声明一个变量,并不会分配一个完整的对象所需要的内存空间,只是将对象名所代表的变量看成是一个引用变量,并为它分配所需内存空间,它所占用的空间远远小于一个类的对象所需要的空间。
    如此处理,使得Java中声明一个对象的消耗很小,但也有一个副作用,就是对象不能马上使用,还需要对它进行实例化。

    2. 实例化对象
    用new关键字创建一个新对象,即进行实例化。格式如下:
    new 构造方法([参数列表])
    实例化的过程就是为对象分配内存空间的过程,此时,对象才成为类的实例。new所执行的具体操作是调用相应类中的构造方法(包括祖先类的构造方法),来完成内存分配以及变量的初始化工作,然后将分配的内存地址返回给所定义的变量。

    实质:实例化了就有自己内存空间。而没有实例化就和引用的对象内存空间地址相同,指向同一个空间。
    声明对象只是单纯的说明有这个对象,但他还没真正实例化-内存分配空间

    希望能够帮助到你们。

    展开全文
  • 1.Java 程序的构成 ...对象(object):对象是类的一个实例,有状态行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类(class):类是一个模板,它描述一类对...
  • 2.标识符:程序中用来表示变量、函数、类、模块其他对象的名称。关键字: 程序发明者规定的有特殊含义的单词。3.标识符的命名规则由字母、数字、汉字以及下划线组成。合法的标识符: x, a1, wang,num_1, radius...
  • 1、对象对象具有状态行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。 2、类:类可以定义为描述对象行为/状态的模板/蓝图。 3、方法:从基本上说,一个方法表示一种行为...
  • SQL SERVER标识符的级别

    2019-04-25 19:30:05
    SQL SERVER标识符有其所在的级别:实例的默认排序规则 影响 实例对象(如登录名数据库名)的标识符的排序;数据库的默认排序规则 影响 数据库对象(例如表、视图列名)的标识符的排序。原来登录名数据库名也...
  • 1. Java变量 局部变量 定义在方法体内的变量,其生命周期只在方法内。 在方法、构造方法或者语句块中定义的变量成为局部变量;...非静态变量,属于类的某个实例对象 成员变量是定义在类中,方法...
  • 标识符是模块、变量、端口、实例、函数、任务、块结构等对象的名称,用于唯一地标识该对象。一个标识符的作用域是指Verilog描述中,该标识可以被识别的范围,作用域规则定义了这个范围。 Verilog可以在四种实体中...
  • 1.java程序的构成 一个java程序可以认为是一系列对象的集合...(1)对象object:对象是类的一个实例,有状态行为。 (2)类class:类是一个模板,它描述一类对象的行为状态。 (3)方法method:方法就是行为,一个
  • 2.标识符:程序中用来表示变量、函数、类、模块其他对象的名称。 关键字: 程序发明者规定的有特殊含义的单词。 3.标识符的命名规则 由字母、数字、汉字以及下划线组成。合法的标识符: x, a1, wang,num_1, ...
  • 对象(object):对象是类的一个实例,有状态行为。 类(class):类是一个模板,它描述一类对象的行为状态。 方法(method):方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成...
  • 下面简要介绍下类、对象、方法和实例变量的概念。对象对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的...
  • Java static标识符

    2016-11-05 14:29:13
    Java的类中会使使用static修饰的成员变量成员方法,被修饰的成员变量为类变量,Java会给类变量会在内存中开辟一个固定的存储空间,该类的实例对象的这个成员变量会共享这个存储空间,当任何一个实例化的对象对这...
  • 对象对象是类的一个实例,有状态行为。 类:类是一个模板,它描述一类对象的行为状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个...
  • java关键字与标识符

    2021-04-19 15:12:53
    关键字 java的保留关键字(2个) const——常量,常数:用于修改...定义类、接口、抽象类实现接口、继承类的关键字、实例对象(6个) class (类):public class A(){}花括号里是已实现的方法体,类名需要与文件名
  • 对象对象是类的一个实例,有 状态 行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它 描述 一类对象的行为状态。 方法:方法就是 行为 ,...
  • 下面简要介绍下类、对象、方法和实例变量的概念。对象对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。类:类是一个模板,它描述一类对象的...
  • 一、标识符理解Java标识性等性,主键,键生成器,标识符生成器1.1什么是标识符1.1.1理解Java标识相等性Java标识: Java对象标识(==)是由Java虚拟机定义的一个概念。如果两个引用都指向相同的内存位置,则他们是...
  • 下面简要介绍下类、对象、方法和实例变量的概念。 对象对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类...
  • 一、关键字 定义:被Java语言赋予了特殊含义的单词  特点:关键字中所有字母都为小写 以下列表列出了Java语言中常用的10类关键字 相对较难记忆的关键字 ...new(创建实例) super(父类引用) instanceof(判断对象
  • 1. Java变量 局部变量 定义在方法体内的变量,其生命周期只在方法内。 在方法、构造方法或者语句块中定义的...非静态变量,属于类的某个实例对象 成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时
  • 对象名也是用户标识符基本类型的变量遵循同样的命名规则使用规则。声明一个变量,并不会分配一个完整的对象所需要的内存空间,只是将对象名所代表的变量看成是一个引用变量,并为它分配所需内存空间,它所占用...
  • const:final相似,在函数后添加const后,成为const类型,不能被修改; 举类: const int a = 3; instanceof : 用来判断 java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof...
  • 对象对象是类的一个实例,有状态行为。 类:类是一个模板,它描述一类对象的行为状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个...
  • 对象(object):对象是类的一个实例,有状态行为。 类(class):类是一个模板,它描述一类对象的行为状态。 方法(method):方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成...
  • 对象的声明与实例

    千次阅读 2018-10-30 10:24:58
    &nbsp;...对象名也是用户标识符基本类型的变量遵循同样的命名规则使用规则。 声明一个变量,并不会分配一个完整的对象所需要的内存空间,只是将对象名所代表的变量看成是一个引用变量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 930
精华内容 372
关键字:

对象标识符和实例标识符