Java Class Version 研究】的更多相关文章

一:要解决的问题 我们在尝鲜 JDK1.5 的时候,相信不少人遇到过 Unsupported major.minor version 49.0 错误,当时定会茫然不知所措.因为刚开始那会儿,网上与此相关的中文资料还不多,现在好了,网上一找就知道是如何解决,大多会告诉你要使用 JDK  1.4 重新编译.那么至于为什么,那个 major.minor 究竟为何物呢?这就是本篇来讲的内容,以使未错而先知. 我觉得我是比 较幸运的,因为在遇到那个错误之前已研读过<深入 Java 虚拟机>第二版,英文原…
错误信息: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) a…
在处理一道题目是,发现他们使用了List 中的set 方法,这个方法我平时很少用到,今天来研究一下,set和add的区别 add(int index,Object obj)方法与set(int index,Object e) 我们写一个例子: package cn.magicdu.think.collections; import java.util.ArrayList; import java.util.List; public class ListTest { public static v…
在jar包中,用winrar解压一个类文件,然后在命令行下面输入 javap -verbose classname 会输出一些信息,大致如下: Compiled from "HtmlCrawer.java" public class org.eagleeye.html.HtmlCrawer extends java.lang.Object SourceFile: "HtmlCrawer.java" minor version: 0 major version: 50…
      由于工作中的需要,最近在研究SNMP协议和利用snmp4j和snmp4j.agent(   http://www.snmp4j.org/ ),实现snmp的南向和北向功能. 结合以前看过的一些开源代码,就如何去研究开源代码做如下总结: 1.研究要联系理论        要有一定的目标和一定的基础知识后再去研究.比如研究snmp4j和snmp4j.agent,那首先得弄清楚什么是SNMP协议, 它包括哪些组成要素等: 又比如,研究tomcat源码,事先了解一下服务器的原理,多线程,we…
一.简述 MD5算法是典型的消息摘要算法,其前身有MD2.MD3和MD4算法,它由MD4.MD3和MD2算法改进而来.不论是哪一种MD算法,它们都需 要获得一个随机长度的信息并产生一个123位的信息摘要.如果将这个128位的二进制摘要信息换算成十六进制,可以得到一个32位的字符串,故我们见到的 大部分MD5算法的数字指纹都是32为十六进制的字符串. MD算法家族的发展史: MD2算法: 1989年,著名的非对称算法RSA发明人之一----麻省理工学院教授罗纳德.李维斯特开发了MD2算法.这个算法…
概述 HashMap是非线程安全的,HashTable是线程安全的. 那个时候没怎么写Java代码,所以根本就没有听说过ConcurrentHashMap,只知道面试的时候就记住这句话就行了…至于为什么是线程安全的,内部怎么实现的,通通不了解. 今天我们将深入剖析一个比HashTable性能更优的线程安全的Map类,它就是ConcurrentHashMap,本文基于Java 7的源码做剖析. ConcurrentHashMap的目的 多线程环境下,使用Hashmap进行put操作会引起死循环,导…
Eclipse的三个地方需要重新设置: 在工程上点右键,选属性,三个地方: Java Build Path Java Compiler Project Facets:这个地方还可以设置tomcat的runtime,可以将不用的server删除…
1.1概述——文件锁 文件锁定初看起来可能让人迷惑.它 似乎 指的是防止程序或者用户访问特定文件.事实上,文件锁就像常规的 Java 对象锁 — 它们是 劝告式的(advisory) 锁.它们不阻止任何形式的数据访问,相反,它们通过锁的共享和获取赖允许系统的不同部分相互协调. 您可以锁定整个文件或者文件的一部分.如果您获取一个排它锁,那么其他人就不能获得同一个文件或者文件的一部分上的锁.如果您获得一个共享锁,那么其他人可以获得同一个文件或者文件一部分上的共享锁,但是不能获得排它锁.文件锁定并不总…
Java.lang包是Java中使用最广泛的一个包,它包含很多定义的类和接口. java.lang包包括以下这些类: Boolean Byte Character Class ClassLoader Compiler Double Enum Float InheritableThreadLocal Integer Long Math Number Object Package Process ProcessBuilder  Runtime RuntimePermission  SecurityM…
一.Constructor与Method的父类:Executable Executable表示一个可执行类,构造方法与普通方法都是Executable AnnotatedType[] getAnnotatedExceptionTypes() AnnotatedType[] getAnnotatedParameterTypes() AnnotatedType getAnnotatedReceiverType() abstract AnnotatedType getAnnotatedReturnTy…
对于反射来说,Class是核心,任何反射的对象都需要通过Class来获得. Class 类的实例表示正在运行的 Java 应用程序中的类和接口.枚举是一种类,注释是一种接口.每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象.基本的 Java 类型(boolean.byte.char.short.int.long.float 和 double)和关键字 void 也表示为 Class 对象. Class 没有公共构造方法.Class 对象是…
对于最新的java1.8而言,reflect中接口的结构是这样的: java.lang.reflect.AnnotatedElement java.lang.reflect.AnnotatedType java.lang.reflect.AnnotatedArrayType java.lang.reflect.AnnotatedParameterizedType java.lang.reflect.AnnotatedTypeVariable java.lang.reflect.Annotated…
注解在表面上的意思,只是标记一下这一部分,最好的注解就是代码自身.而在java上,由于注解的特殊性,可以通过反射API获取,这种特性使得注解被广泛应用于各大框架,用于配置内容,代替xml文件配置. 要学会注解的使用,最简单的就是定义自己的注解,所以需要先了解一个java的元注解 1.元注解--注解的注解 元注解的作用就是负责注解其他注解,在java1.6上,只有四个元注解:@Target.@Retention.@Documented.@Inherited.在java1.8上,多了@Native与…
java的介绍和定性 java的优缺点分析 jdk的组成结构 jvm的工作原理 java的跨平台原理 java的编译和运行过程…
之前总觉得C#和Java可以交互应用,但是由于时间以及其他方面的原因,一直没有调研.今天抽空搜了一下,终于折腾出来了. 以下是我自己就C#和Java整合的一些提问和分析,如果有不对的地方,请路过的各位大虾给予指出.3Q! 问题来了: 1.C#和Java如何整合? 2.为什么C#(.Net)要和Java整合? 3.Java和C#整合时,Java主要扮演什么角色?C#扮演什么角色? 答案一一揭晓: 1.C#和Java整合大致有4条路可以走. 1.1 把Java包转换为DLL或者EXE后注册为com组…
Lock和synchronized     JDK1.5以后,在锁机制方面引入了新的锁-Lock,在网上的说法都比较笼统,结合网上的信息和我的理解这里做个总结.     java现有的锁机制有两种实现方式,J.DK1.4前是通过synchronized实现,JDK1.5后加入java.util.concurrent.locks包下的各种lock(以下简称Lock)     先说说代码层的区别.     synchronized:在代码里,synchronized类似“面向对象”,修饰类.方法.对…
一.背景 连接池简介: 连接池初始化时创建一定数量的连接,然后从连接池中重用连接,而不是每次创建一个新的. 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而…
这个就是实现一个简单的 ArrayList 的遍历,如果存在一个为"aaa"的值,就添加一个"ccc" package Array; import java.util.ArrayList; import java.util.Iterator;public class demo2 { public static void main(String[] args) { ArrayList<String> list = new ArrayList<Stri…
1.Java对IPv6的支持 相对其他开发语言而言,Java对IPv6的支持是比较透明的, 如果全部采用域名(主机名)的方式进行通信,那么基本不需要修改也无需编译原来的代码就可以直接在IPv6上运行. Java从其1.4版开始对IPv6提供了较好的支持,对程序员基本屏蔽了IPv4和IPv6的差异. 1.1作为Server端 Windows平台必须升级到JDK/JRE 5.0或以上版本,其他平台JDK/JRE应该至少使用1.4.2版本. 使用Tomcat,jetty等web服务器的Web应用,缺省…
(1)static关键字:可以用于修饰属性.方法和类. 1,属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一的一份静态的成员变量(不能修饰临时变量 2,方法:static修饰的方法叫做静态, 对于静态方法来说,可以使用类名.方法名的方式来访问.不能重写(Override) 3,static代码块:静态代码块.静态代码块的作用也是完成一些初始化工作.  首先执行静态代码块,然后执行构造方法.静态代码块在类被加载的时候执行,而构造方法在生成对象的时候执行: 顺序讲得很通透:https://…
深入研究Java类载入机制   类载入是Java程序运行的第一步,研究类的载入有助于了解JVM运行过程,并指导开发人员採取更有效的措施配合程序运行. 研究类载入机制的第二个目的是让程序能动态的控制类载入,比方热部署等,提高程序的灵活性和适应性.   一.简单过程   Java程序执行的场所是内存,当在命令行下执行: java HelloWorld 命令的时候,JVM会将HelloWorld.class载入到内存中,并形成一个Class的对象HelloWorld.class. 当中的过程就是类载入…
原博地址:http://blog.csdn.net/dingchenxixi/article/details/51496998 一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version 方法二: 在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; <…
问题描述 在eclipse中,从SVN中检出project代码,拖拽式部署到local server中的时候,报出以下错误: 问题分析 问题产生的原因是,SVN中的代码是采用java 1.7开发编译的,而我的eclipse环境中采用的是java 1.6. 解决方法 在出问题的project上右键选择Properties ,然后再选择Project Facets,将java的version 改成1.6,点击OK即可.…
一看知道是因为jdk版本不一致所导致,如何解决? 方法一: 选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version  方法二: 在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; <?xml version="1.0" encoding="UTF-8"?> <…
在移植eclipse项目时,如果遇到 “Project facet Java version 1.7 is not supported.” 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可. 法2,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.…
转载: http://my.oschina.net/nly/blog/349081 在移植eclipse项目时,如果遇到 报:“Project facet Java version 1.7 is not supported.”项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持.解决办法:法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version 即可法2,在 项目的目录下有一个…
可能你用的jdk1.5的包,而开发是用的jdk1.6,不允许1.5进行安装 法1,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可 法2,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下; 修改 <installed facet="java" versi…
在Eclipse打开一个项目,并用Tomcat运行时,报错:Project facet Java version 1.7 is not supported. 大致的截图如下: "项目中的jdk1.7不支持". 说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: (1)选中项目 Properties , 选择 Project Facets,右击选择 Java , 更改 Version 为1.6或者其他支持的版本即可.(亲测可用)   (2)在项目的目录下…
在移植eclipse项目时,如果遇到 "Project facet Java version 1.7 is not supported." 项目中的jdk1.7不支持.说明项目是其他版本jdk编译的,在eclipse里运行时会报版本不支持. 解决办法: ,选中项目 Properties , 选择 Project Facets,右击选择 Java , Change Version ...          即可. ,在 项目的目录下有一个.settings的文件夹,该文件夹下有一个org…