java

阅读 / 问答 / 标签

JAVA里面的int类型 和Integer类型,有什么不一样

java.lang.Integer是一个类.对它的操作要通过类的方法 int是JAVA缺省的8中基本数据类型之一.不是类的对象.int是基本数据类型,Integer是对int进行了封装的一个类。 声明为int的变量不需要实例化,声明为Interger的变量需要实例化 int是基本类型,Integer是包装类,也就是类。Integer 是比int 更高级的 数据类型 为什么java中使用int 而不像vb中那样使用Integerint是面向机器底层的数值类型,是Primitive类型的数据类型,而Integer是int的Warpper类,是面向对象的即OOP的对象类型。int 一般只用在数值计算中,而Integer是用在Java的其它要使用对象的地方,比如Map的Key与Value,List与Set的Element若要保存数值信息都要把int包装成Integer对象使用。Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double 引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

java为什么要有integer类型

int是JAVA八大基本数据类型(byte,shor,int,long,char,boolean,float,double)之一。JAVA语言为八大基本数据提供了包装类,Integer对应是int类型的包装类,就是把int类型包装成Object对象。  Java有2种不同的类型:引用类型和原始类型。Int是java的原始数据类型,Integer是java的为int提供的封装类。Java为每个原始类型提供了封装类。  int是基本数据类型Integer是int的一个包装类(wrapper),他是类不是基本数据类型,他的内部其实包含一个int型的数据那为什么要用Integer呢,主要是因为面向对象的思想,因为Java语言是面向对象的,这也是它只所以流行的原因之一,对象封装有很多好处,可以把属性也就是数据跟处理这些数据的方法结合在一起,比如Integer就有parseInt()等方法来专门处理int型相关的数据,另一个非常重要的原因就是在Java中绝大部分方法或类都是用来处理类类型对象的,如ArrayList集合类就只能以类作为他的存储对象,而这时如果想把一个int型的数据存入list是不可能的,必须把它包装成类,也就是Integer才能被List所接受。所以Integer的存在是很必要的。  始数据类型引用数据类型  booleanBoolean  charCharacter  byteByte  shortShort  intInteger  longLong  floatFloat  doubleDouble  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以那种类型的数据结构存储,当引用类型和原始类型用作某个类的实例时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。  Integer类的使用方法1、属性。staticintMAX_VALUE:返回最大的整型数;staticintMIN_VALUE:返回最小的整型数;staticClassTYPE:返回当前类型。例子代码:System.out.println("Integer.MAX_VALUE:"+Integer.MAX_VALUE);结果为:Integer.MAX_VALUE:2147483647  2、构造函数。Integer(intvalue):通过一个int的类型构造对象;Integer(Strings):通过一个String的类型构造对象;例子代码:Integeri=newInteger("1234");生成了一个值为1234的Integer对象。  3、方法。说明:1.所有方法均为public;2.书写格式:[修饰符] 如:staticintparseInt(Strings)表示:此方法(parseInt)为类方法(static),返回类型为(int),方法所需参数为String类型。1.byteValue():取得用byte类型表示的整数;2.intcompareTo(IntegeranotherInteger):比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。例子代码:Integeri=newInteger(1234);System.out.println("i.compareTo:"+i.compareTo(newInteger(123)));结果为:i.compareTo:13.intcompareTo(Objecto):将该整数与其他类进行比较。如果o也为Integer类,进行方法2的操作;否则,抛出ClassCastException异常。4.staticIntegerdecode(Stringnm):将字符串转换为整数。5.doubledoubleValue():取得该整数的双精度表示。6.booleanequals(Objectobj):比较两个对象。7.floatfloatValue():取得该整数的浮点数表示。8.staticIntegergetInteger(Stringnm):根据指定名确定系统特征值。9.staticIntegergetInteger(Stringnm,intval):上面的重载。10.staticIntegergetInteger(Stringnm,Integerval):上面的重载。11.inthashCode():返回该整数类型的哈希表码。12.intintValue():返回该整型数所表示的整数。13.longlongValue():返回该整型数所表示的长整数。14.staticintparseInt(Strings):将字符串转换成整数。s必须是时进制数组成,否则抛出NumberFormatException异常。15.staticintparseInt(Strings,intradix):以radix为基数radix返回s的十进制数。所谓的基数就是“几进制”。例子代码:Strings1=newString("1010");System.out.println("Integer.parseInt(Strings,intradix):"+Integer.parseInt(s1,2));结果为:Integer.parseInt(Strings,intradix):10即s1在此例中被看成是二进制,返回十进制就是10。16.shortshortValue():返回该整型数所表示的短整数。17.staticStringtoBinaryString(inti):将整数转为二进制数的字符串。18.staticStringtoHexString(inti):将整数转为十六进制数的字符串。19.staticStringtoOctalString(inti):将整数转为八进制数的字符串。20.StringtoString():将该整数类型转换为字符串。21.staticStringtoString(inti):将该整数类型转换为字符串。不同的是,此为类方法。22.staticStringtoString(inti,intradix):将整数i以基数radix的形式转换成字符串。例子代码:inti1=54321;System.out.println("Integer.toString(inti,intradix):"+Integer.toString(i1,16));结果为:Integer.toString(inti,intradix):d43123.staticIntegervalueOf(Strings):将字符串转换成整数类型。24.staticIntegervalueOf(Strings,intradix):将字符串以基数radix的要求转换成整数类型。

JAVA里Integer是什么意思

int类型的包装类就是Integer类。一个典型的运用就是:实现int类型到String类型的转换。使用具体方法是:IntegerI=newInteger(inti=1);Stringstr=I.valueOf();

java中 Integer是什么意思

准确的说啊a == b比较的是栈内存的值,所以用int的话,值存在栈内存里,就是相等的。而Integer是对象。对象的值存在堆内存,栈内存存的是地址,由于实例化了两个对象,地址自然不同,所以是false。

如何用java开发基于jabber的IM软件

jwchat

JAVA 模拟ATM柜员机模拟程序

/*要求:使用字符用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。3、ATM存款:不能出现负存款。4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。(卡号密码余额放到文件中) */public class ATM { private Account acc; private File dataFile; private FileWriter fw; private BufferedWriter bw; private String filePath = "./data.txt"; public ATM() { this.acc = new Account(); try { this.dataFile = new File(this.filePath); if (!this.dataFile.exists()) { this.dataFile.createNewFile(); } this.fw = new FileWriter(this.filePath); this.bw = new BufferedWriter(this.fw); } catch (IOException io) { System.err.println("Cannot open file"); io.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new ATM().interact(); } public void interact() { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Account #: "); String temp = br.readLine(); System.out.println("Password: "); String temp2 = br.readLine(); if (!this.acc.isValid(Long.parseLong(temp.trim()), temp2.trim()) { System.err.println("Wrong password"); return; } System.out.println("1. Account Inquery."); System.out.println("2. Withdraw"); System.out.println("3. Deposit."); System.out.println("4. Change Password."); System.out.println("5. Export to File."); System.out.println("0. Exit."); int c = 100; while (c != 0) { String str = br.readLine(); try { int c = Integer.parseInt(str.trim()); } catch (NumberFormatException nfe) { System.err.println("Invalid choice"); continue; } switch (c) { case 0: System.out.println("Thank you"); break; case 1: System.out.println("Balance: " + this.acc.balanceInquery()); break; case 2: System.out.println("How much? "); String temp = br.readLine(); try { long ammount = Long.parseLong(temp.trim()); this.acc.withdraw(ammount); break; } catch (NumberFormatException nfe) { System.err.println("Invalid amount"); continue; } case 3: System.out.println("How much? "); String temp = br.readLine(); try { long ammount = Long.parseLong(temp.trim()); this.acc.deposit(ammount); break; } catch (NumberFormatException nfe) { System.err.println("Invalid amount"); continue; } case 4: System.out.println("Old password: "); String temp = br.readLine(); System.out.println("New password: "); String temp2 = br.readLine(); this.acc.changePassword(temp, temp2); break; case 5: this.bw.write(this.acc.toString()); break; default: break; } } }}class Account { private long accNo = 123456; private String pass = "123456"; private long balance = 10000; public Account() { } public boolean isValid(long accNo, String pass) { return (this.accNo == accNo) && (pass.equals(this.pass)); } public void changePassword(String oldPass, String password) { if (!oldPass.equals(this.pass)) { System.err.println("Wrong password."); return; } if (password.length < 6) { System.err.println("Password too short"); return; } if (password.equals(this.pass)) { System.err.println("Password cannot be the same."); return; } this.pass = password; } public long balanceInquery() { return this.balance; } public void withdraw(long amount) { if (amount > 5000 || amount < 0) { System.err.println("Withdraw limit: $0-$5000"); return; } if ((amount % 100) != 0) { System.err.println("The amount has to be a product of 100"); return; } long newBalance = this.balance - amount; if (newBalance < 0) { System.err.println("Not enough money in the account"); return; } this.balance = newBalance; } public void deposit(long amount) { if (amount < 0) { System.err.println("Cannot deposit negative amount"); return; } this.balance += amount; } public String toString() { return ("Account #: " + this.accNo + " " + "Password: " + this.pass + " " + "Balance: " + this.balance); }}

怎么判断某元素中是否含有另外一个元素?谢谢。javascript

这些代码还要自己写么,jQuery.....

采用qt for android是不是就能绕过java用c++开发Android

是可以,但是最终编译的时候还是需要JDK开发环境的。无论使用什么语言开发,安卓手机只认JAVA,所以最终都必须转换为JAVA才能装到手机里。只是你使用QT的话,最终的编译过程是自动转换的。你不需要懂JAVA也是可以的。但是建议还是对JAVA有一定了解,在开发的时候能避免很多问题。

java中什么类对应数据库中interval类型?

ORACLE jdbc API.import oracle.sql.INTERVALDS;pstmt = (OraclePreparedStatement)conn.prepareStatement(sqlString);pstmt.setINTERVALDS(3, new INTERVALDS ("2 03:15:15.0"));参考资料:http://www.oracle.com/technology/global/cn/sample_code/tech/java/codesnippet/jdbc/intervaldaytosec/IntervalDayToSecond.html

Servlet.service() for servlet action threw exception java.lang.NullPointerException at java.lang.Cl

这个错误可能是页面有一个集合类,而用户把集合类中的类型搞错了.有时候是session中有同名的集合类,比如 [ list ]

org.apache.spark.api.java.optional在哪个包下

apache官网找spark,然后看下载的文件夹,里面有这个包

如何更好地使用Java 8的Optional

我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了Optional<User> user = ...... if (user.isPresent()) {return user.getOrders();} else {return Collections.emptyList();}那么不得不说我们的思维仍然是在原地踏步, 只是本能的认为它不过是 User 实例的包装, 这与我们之前写成User user = .....if (user != null) {return user.getOrders();} else {return Collections.emptyList();}实质上是没有任何分别. 这就是我们将要讲到的使用好 java 8 Optional 类型的正确姿势.在里约奥运之时, 新闻一再提起五星红旗有问题, 可是我怎么看都看不出来有什么问题, 后来才道是小星星膜拜中央的姿势不对. 因此我们千万也别对自己习以为常的事情觉得理所当然, 丝毫不会觉得有何不妥, 换句话说也就是当我们切换到 Java 8 的 Optional 时, 不能继承性的对待过往 null 时的那种思维, 应该掌握好新的, 正确的使用 Java 8 Optional 的正确姿势.直白的讲, 当我们还在以如下几种方式使用 Optional 时, 就得开始检视自己了调用 isPresent() 方法时调用 get() 方法时Optional 类型作为类/实例属性时Optional 类型作为方法参数时isPresent() 与 obj != null 无任何分别, 我们的生活依然在步步惊心. 而没有 isPresent() 作铺垫的 get() 调用在 IntelliJ IDEA 中会收到告警Reports calls to java.util.Optional.get() without first checking with a isPresent() call if a value is available. If the Optional does not contain a value, get() will throw an exception. (调用 Optional.get() 前不事先用 isPresent() 检查值是否可用. 假如 Optional 不包含一个值, get() 将会抛出一个异常)把 Optional 类型用作属性或是方法参数在 IntelliJ IDEA 中更是强力不推荐的Reports any uses of java.util.Optional<T>, java.util.OptionalDouble, java.util.OptionalInt, java.util.OptionalLong or com.google.common.base.Optional as the type for a field or a parameter. Optional was designed to provide a limited mechanism for library method return types where there needed to be a clear way to represent “no result”. Using a field with type java.util.Optional is also problematic if the class needs to be Serializable, which java.util.Optional is not. (使用任何像 Optional 的类型作为字段或方法参数都是不可取的. Optional 只设计为类库方法的, 可明确表示可能无值情况下的返回类型. Optional 类型不可被序列化, 用作字段类型会出问题的)所以 Optional 中我们真正可依赖的应该是除了 isPresent() 和 get() 的其他方法:public<U> Optional<U> map(Function<? super T, ? extends U> mapper)public T orElse(T other)public T orElseGet(Supplier<? extends T> other)public void ifPresent(Consumer<? super T> consumer)public Optional<T> filter(Predicate<? super T> predicate)public<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper)public <X extends Throwable> T orElseThrow(Supplier<? extends X> exceptionSupplier) throws X我略有自信的按照它们大概使用频度对上面的方法排了一下序.先又不得不提一下 Optional 的三种构造方式: Optional.of(obj), Optional.ofNullable(obj) 和明确的 Optional.empty()Optional.of(obj): 它要求传入的 obj 不能是 null 值的, 否则还没开始进入角色就倒在了 NullPointerException 异常上了.Optional.ofNullable(obj): 它以一种智能的, 宽容的方式来构造一个 Optional 实例. 来者不拒, 传 null 进到就得到 Optional.empty(), 非 null 就调用 Optional.of(obj).那是不是我们只要用 Optional.ofNullable(obj) 一劳永逸, 以不变应二变的方式来构造 Optional 实例就行了呢? 那也未必, 否则 Optional.of(obj) 何必如此暴露呢, 私有则可?我本人的观点是: 1. 当我们非常非常的明确将要传给 Optional.of(obj) 的 obj 参数不可能为 null 时, 比如它是一个刚 new 出来的对象(Optional.of(new User(...))), 或者是一个非 null 常量时; 2. 当想为 obj 断言不为 null 时, 即我们想在万一 obj 为 null 立即报告 NullPointException 异常, 立即修改, 而不是隐藏空指针异常时, 我们就应该果断的用 Optional.of(obj) 来构造 Optional 实例, 而不让任何不可预计的 null 值有可乘之机隐身于 Optional 中.现在才开始怎么去使用一个已有的 Optional 实例, 假定我们有一个实例 Optional<User> user, 下面是几个普遍的, 应避免 if(user.isPresent()) { ... } else { ... } 几中应用方式.存在即返回, 无则提供默认值return user.orElse(null); //而不是 return user.isPresent() ? user.get() : null;return user.orElse(UNKNOWN_USER);存在即返回, 无则由函数来产生return user.orElseGet(() -> fetchAUserFromDatabase()); //而不要 return user.isPresent() ? user: fetchAUserFromDatabase();存在才对它做点什么user.ifPresent(System.out::println);//而不要下边那样if (user.isPresent()) {System.out.println(user.get());}map 函数隆重登场当 user.isPresent() 为真, 获得它关联的 orders, 为假则返回一个空集合时, 我们用上面的 orElse, orElseGet 方法都乏力时, 那原本就是 map 函数的责任, 我们可以这样一行return user.map(u -> u.getOrders()).orElse(Collections.emptyList())//上面避免了我们类似 Java 8 之前的做法if(user.isPresent()) {return user.get().getOrders();} else {return Collections.emptyList();}map 是可能无限级联的, 比如再深一层, 获得用户名的大写形式return user.map(u -> u.getUsername()).map(name -> name.toUpperCase()).orElse(null);这要搁在以前, 每一级调用的展开都需要放一个 null 值的判断User user = .....if(user != null) {String name = user.getUsername();if(name != null) {return name.toUpperCase();} else {return null;}} else {return null;}针对这方面 Groovy 提供了一种安全的属性/方法访问操作符 ?.user?.getUsername()?.toUpperCase();Swift 也有类似的语法, 只作用在 Optional 的类型上.用了 isPresent() 处理 NullPointerException 不叫优雅, 有了 orElse, orElseGet 等, 特别是 map 方法才叫优雅.其他几个, filter() 把不符合条件的值变为 empty(), flatMap() 总是与 map() 方法成对的, orElseThrow() 在有值时直接返回, 无值时抛出想要的异常.一句话小结: 使用 Optional 时尽量不直接调用 Optional.get() 方法, Optional.isPresent() 更应该被视为一个私有方法, 应依赖于其他像 Optional.orElse(), Optional.orElseGet(), Optional.map() 等这样的方法.最后, 最好的理解 Java 8 Optional 的方法莫过于看它的源代码 java.util.Optional, 阅读了源代码才能真真正正的让你解释起来最有底气, Optional 的方法中基本都是内部调用 isPresent() 判断, 真时处理值, 假时什么也不做.

如何更好地使用Java 8的Optional

  Java 8中的Optional<T>是一个可以包含或不可以包含非空值的容器对象,在 Stream API中很多地方也都使用到了Optional。   java中非常讨厌的一点就是nullpoint,碰到空指针就会出错抛Exception,然后需要逐行检查是哪个对象为空,带来大量的不必要精力损耗,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。   如下面这个代码的手工非空检查: public void addAddressToCustomer(Customer customer, Address newAddress){ if ( customer == null || newAddress == null) return; if ( customer.getAddresses() == null ){ customer.setAddresses ( new ArrayList<>()); } customer.addAddress(newAddress); }   另外还有一些开发人员喜欢通过非空检查来实现业务逻辑,空对象不应该用来决定系统的行为,它们是意外的Exceptional值,应当被看成是错误,而不是业务逻辑状态。   当我们一个方法返回List集合时,应该总是返回一个空的List,而不是Null,这就允许调用者能够遍历它而不必检查Null,否则就抛出NPE。   但是如果我们根据标识键ID查询数据库,没有查到,需要返回一个空对象怎么办?有人建议抛出Exception,其实这不符合函数方法一进一出的原则,变成一个函数方法有两个返回,一个是正常返回,一个出错Exception,函数式编程范式告诫我们不要轻易抛Exception。   这时Java 8的Optional就发挥作用了,允许我们返回一个空的对象。   Optional<T>有方法 isPresent() 和 get() 是用来检查其包含的对象是否为空或不是,然后返回它,如: Optional<SomeType> someValue = someMethod(); if (someValue.isPresent()) { // check someValue.get().someOtherMethod(); // retrieve and call }   但是这种用法并不能体现Java 8的全部好处,你可以将Optional看成是需要使用某个T值的方法之间某种中间人或者协调者Mediator,而不只是一个普通对象的包装器。   如果你有一个值返回类型T,你有一个方法需要使用这个值,那么你可以让 Optional<T> 处于中间,确保它们之间交互进行,而不必要人工干预。   这样,协调者Optional<T>能够照顾T的值提供给你的方法作为输入参数,在这种情况下,如果T是空,可以确保不会出错,这样在T值为空时也可以让一切都正常运作,你也可以让Optional<T>执行其他动作,如执行一段代码块等等,这样它就实际上是语言机制的很好的补充。   下面这个案例涉及到Lambda表达式 方法引用,是将单词流中第一个以"L"开始单词取出,作为返回结果是一个Optional<String>。 使用ifPresent()   这个案例的代码如下: Stream<string> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<string> longest = names .filter(name -> name.startsWith("L")) .findFirst();longest.ifPresent(name -> { String s = name.toUpperCase(); System.out.println("The longest name is "+ s); });  这里ifPresent() 是将一个Lambda表达式作为输入,T值如果不为空将传入这个lambda。那么这个lambda将不为空的单词转为大写输出显示。在前面names单词流寻找结果中,有可能找不到开始字母为L的单词,返回为空,也可能找到不为空,这两种情况都传入lambda中,无需我们打开盒子自己编写代码来判断,它自动帮助我们完成了,无需人工干预。 使用map()  如果你想从Optional<T>中返回一个值怎么办?使用 map(),如下: Stream<string> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<string> longest = names .filter(name -> name.startsWith("L")) .findFirst();Optional<string> lNameInCaps = longest.map(String::toUpperCase);   使用Optional<T>的map方法能够返回另外一个Optional,如上面的 LnameInCaps,因为传入map()的参数值也许会导致一个空值。使用orElse()   如果在T可能空时你需要一个值的话,那么可以使用 orElse(),它能在T值存在的情况下返回这个值,否则返回输入值。 Stream<String> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<String> longest = names .filter(name -> name.startsWith("Q")) .findFirst();String alternate = longest.orElse("Nimrod"); System.out.println(alternate); //prints out "Nimrod"使用orElseGet()   orElseGet() 方法类似于orElse(),但是不是直接返回输入参数,而是调用输入参数,返回调用的结果,这个输入参数通常是lambda: Stream<String> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<String> longest = names .filter(name -> name.startsWith("Q")) .findFirst();String alternate = longest.orElseGet(() -> { // perform some interesting code operation // then return the alternate value. return "Nimrod"; }); System.out.println(alternate); 使用 orElseThrow()  orElseThrow()是在当遭遇Null时,决定抛出哪个Exception时使用:Stream<String> names = Stream.of("Lamurudu", "Okanbi", "Oduduwa"); Optional<String> longest = names .filter(name -> name.startsWith("Q")) .findFirst(); longest.orElseThrow(NoSuchElementStartingWithQException::new);总结,你能创建下面三种类型的Optional<T>: Optional<SomeType> getSomeValue() { // 返回一个空的Optional类型; return Optional.empty(); }Optional<SomeType> getSomeValue() { SomeType value = ...; // 使用这个方法,值不可以为空,否则抛exception return Optional.of(value); }Optional<SomeType> getSomeValue() { SomeType value = ...; // 使用这个方法,值可以为空,如果为空返回Optional.empty return Optional.ofNullable(value);// usage Optional<SomeType> someType = getSomeValue();

Java数组求最大最小值

这里的难点在于记录数字的位置,因此我定义了一个类NumPosition.java,由数字和它的位置组成:public class NumPosition {private int num;private int position;public NumPosition(int num, int position) {this.num = num;this.position = position;}public int getNum() {return num;}public int getPosition() {return position;}}然后在main函数中,首次遍历求和的时候,记录每一个数字的位置,之后排序后,就可以找到最大值和最小值的位置了:public class Main {public static void main(String[] args) {int[] s = new int[]{3, 5, 2, 6, 54, 8, 9, 1, 4, 11};NumPosition[] positions = new NumPosition[s.length];int sum = 0;for (int i = 0; i < s.length; i++) {sum += s[i];positions[i] = new NumPosition(s[i], i);}System.out.println("一维数组中的数的和为:" + sum);//jdk自带数组升序排序,也可以搜一下冒泡排序自己实现Arrays.sort(s);int min = s[0];//最小值 排序后第一个元素int max = s[s.length - 1];//最大值 排序后最后一个元素for (int i = 0; i < positions.length; i++) {if (positions[i].getNum() == min) {System.out.println("数组中的最小的数为:[" + min + "],其位于数组的第[" + positions[i].getPosition() + "]位置");}if (positions[i].getNum() == max) {System.out.println("数组中的最大的数为:[" + max + "],其位于数组的第[" + positions[i].getPosition() + "]位置");}}}}运行结果:这里位置是从0算起的,如果要从1算起就每个位置加1

java 读取xml文件中所有item

我E盘放了这个xml文件public class Sovle1 { public static void main(String args[]) throws ParseException, ParserConfigurationException, SAXException, IOException{ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = docBuilder.parse("e:/test.xml"); NodeList list = document.getElementsByTagName("item"); for(int i=0; i<list.getLength(); i++){ Node node = list.item(i); System.out.println(node.getAttributes().getNamedItem("label")); } } }

java什么函数跟python里的strip作用一样

我记得是去掉 文本中句子开头与结尾的符号的。因为在文本中每行开头都有个"/n",代表换行。(印象中是这样的) 一般是 for line in file: line.strip().split() 这样就把每行的每个字符一个个分开,变成一个list。 好久没碰了,你可以试试

、Javaweb中items的基本含义和用法。

item:条,条款,项目;(新闻等的)一条,一则;注意(或关心)的对象;(有恋情的)一对。 items 是 item 的复数形式。

Java中如果集合迭代器已经迭代完了,如果还想迭代,只能在调用一遍iterator返回一个新的吗?

没错,是这样的

java iterator赋值问题

将j中的值遍历出来,放入list中,在iterator i = list.iterator();这样就可以了吧

java迭代器的使用方法

建议看一下java中的泛型,有助于理解

java 怎么知道Iterator有多少条记录

it.size()

java Iterator调用时报错,请大神看看怎么回事?

难道是Iterrator的类来源不是util么?感觉遍历没问题啊...要不要加个泛型试试...不过下面的book范围有没有问题啊...

JAVA集合 使用Iterator遍历员工集合,打印员工姓名以及性别

for,while是一样的,形式上的不同foreach,Iterator也是一样的,形式上的不同性能肯定是用迭代器的好一些。迭代器能直接访问集合内部元素。而且有的集合没有索引,没法用for来遍历,只有用迭代器。

java iterator怎样获取元素下标???

List本来就是有序的集合,你可以直接用for(int i=0;i<list.size();++){..}这种方式遍历集合元素。

JAVA中Iterator方法中有两种取值方法,例如Iterator it = list.iterator();

next效率远比get高

java Iterator i=c.iterator();这句的意思是什么

迭代,这样方便获取集合c中的值

Java中定义一个迭代器(Iterator)遍历完一个集合后,如果还要再遍历一次这个集合?

Java中哪些类实现了Iterator接口??

看一下jdk文档。就知道了。

java中for循环和iterator迭代的区别

for循环是语言中循环控制结构。而iterator则是用来遍历集合中的元素。本身是不能够循环遍历需要借助循环控制语句进行迭代元素。个人认为iterator封装了循环体遍历元素的细节,使得编程人员无需关心集合结构,以及访问元素的操作。例如:for(inti=0;i评论00加载更多

java中Iterator和Iterable的区别

java ITerable和Iterator的区别如下:1.Iterator是迭代器类,而Iterable是为了只要实现该接口就可以使用foreach,进行迭代.Iterable中封装了Iterator接口,只要实现了Iterable接口的类,就可以使用Iterator迭代器了。2.集合Collection、List、Set都是Iterable的实现类,所以他们及其他们的子类都可以使用foreach进行迭代。3.Iterator中和核心的方法next(),hasnext(),remove(),都是依赖当前位置,如果这些集合直接实现Iterator,则必须包括当前迭代位置的指针。当集合在方法间进行传递的时候,由于当前位置不可知,所以next()之后的值,也不可知。而当实现Iterable则不然,每次调用都返回一个从头开始的迭代器,各个迭代器之间互不影响。

java中为什么要使用Iterator,或者Iterator的用途是什么

可以用iterator();

Java iterator()和next()原理用法

Java中的“Iterable”和“Iterator”这两个单词的正确读音是什么,详见问题内容。

我晕,到金山词霸上去查下就行了,像计算机语言这个东西,有的都差不多,你知道怎么用就行了嘛

Java iterator 迭代器如何加入元素...可以加入不同类型的元素么?

链表的一些方法使用和迭代器的使用(把链表内的元素迭代出),你可以看下~ import java.util.*;public class test11 {static LinkedList list = new LinkedList();String[] arrays = {"1","2","3","4","5"};static Iterator it ;public static void main(String[] args) {test11 t = new test11();t.useLinkedList(list);t.useIterator(list,it);}//链表的使用public void useLinkedList(LinkedList list){for(int i = 0;i < 5;i++)list.add(arrays[i]);//把数组的元素都添加到链表System.out.println("操作前的长度:"+list.size());//打印出链表的长度System.out.println("此列表的头(第一个元素)为:"+list.peek());/*peek() 找到但不移除此列表的头(第一个元素)。*/System.out.println("查找后的长度:"+list.size());System.out.println("移除的元素为:"+list.poll()); /*poll() 找到并移除此列表的头(第一个元素)。*/System.out.println("移除后的长度:"+list.size());System.out.println("返回第一个元素:"+list.getFirst());//getFirst() 返回此列表的第一个元素。System.out.println("返回最后一个元素:"+list.getLast());//getLast() 返回此列表的最后一个元素。if(list.contains("4"))//boolean contains(Object o) 如果此列表包含指定元素,则返回 true。 System.out.println("存在此元素");elseSystem.out.println("不存在此元素");}//迭代器的使用public void useIterator(LinkedList list,Iterator it){it = list.iterator();//将链表的元素迭代出并打印while(it.hasNext())System.out.print(it.next()+" ");}}

Java中的迭代器Iterator是属于类还是对象,还是别的?

抽象类

Java iterator和set有什么区别?

JAVA集合主要分为三种类型: Set(集)  List(列表)   Map(映射)iterator 就是迭代器,是遍历集合的一种方式! 具体请看:http://baike.baidu.com/view/1413849.htm?fr=aladdin  

java里iterator怎么获取当前元素?

建议你remove掉然后重新add,因为元素改了hashcode也改了,这样在hashset内部的位置要重新计算,你要是直接改元素的内容元素在hashset内部的位置不会变,后面使用的时候就会出问题

java 中 iterator 为什么翻译成迭代器呢

舍本逐末 知道就好宏观把握

求高手指点java中迭代器iterator和foreach的不同之处

foreach语句是由iterator实现的,正如你所说,他们的不同之处就在于remove()方法上。一般调用删除方法都是集合的方法,例如:Listlist=newArrayList();list.add(...);list.remove(...);但是,如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:for(inti=0;i<list.size();i++){list.remove(...);}循环过程中list.size()的大小变化了,就导致了错误。所以,如果你想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态,例如,你不能连续两次调用它的remove()方法,调用之前至少有一次next()方法的调用。如果你想了解的更透彻,可以查看一下原码,看它是怎么实现的。因为foreach语句是由iterator语句实现的,所以如果你在循环中删除某个元素时,应该用iterator的remove()方法,可是这时你又没有iterator对象,怎么调用呢?所以,这种情况下,一般还是用iterator来循环访问,并筛选删除。说白了,foreach就是为了让用iterator循环访问的形式看着更好看,写起来更方便。但如有删除操作,当然还是用它原来的形式了。

java iterator方法

迭代器(Iterator)  迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。  Java中的Iterator功能比较简单,并且只能单向移动:  (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。  (2) 使用next()获得序列中的下一个元素。  (3) 使用hasNext()检查序列中是否还有元素。  (4) 使用remove()将迭代器新返回的元素删除。  Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。迭代器应用: list l = new ArrayList(); l.add("aa"); l.add("bb"); l.add("cc"); for (Iterator iter = l.iterator(); iter.hasNext();) { String str = (String)iter.next(); System.out.println(str); } /*迭代器用于while循环 Iterator iter = l.iterator(); while(iter.hasNext()){ String str = (String) iter.next(); System.out.println(str); } */

请问java中的Iterator和Iterable有些什么区别啊?

Iterator 迭代器Iterable 可迭代。迭代器可以迭代,可以迭代的是迭代器。可迭代类中封装了Iterator接口,只要实现了Iterable接口的类,就可以使用Iterator迭代器了。

JAVA中Iterator的具体作用?

有时间你去看看Iterator接口的源代码是怎么写的。

java中为什么要使用Iterator?Iterator的用途是什么?

Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。 x0dx0ax0dx0a 例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: x0dx0ax0dx0afor(int i=0; i

oracle number(1)一般对应于Java中的类型

int类型啊

在javascript中1与Number(1)有什么区别?

第一个 1 取决于申明方式,有可能是字符串或数字类型第二个 1 返回的直接是数字类型

java 下面的程序有一些错误,请分别指出,并给每一行语句做一个注释。

import javax.swing.*;//导包public class Sum {//类public static void main(String argv[]){//main函数String n1, n2;//声明字符创 n1 n2int number1, number2;//声明数字 int sum;//声明sumn1= JOptionPane.showInputDialog("input first number");//输入的字符串n1n2= JOptionPane.showInputDialog("input first number");//这里应该是xxx second xxx number1 = Integer.parseInt(n4)//应该是n1 把n1转化为int类型number2 = Integer.parseInt(n2);//把 n2转化为int类型sum = number1 + number2;//求和JOptionPane.showMessgeDialog (null,"sum is "+ sum, "results", JOptionPane.ERROR_MESSAGE);//此处调用的方法不对,方法名错了showMessageDialogSystem.exit(0);//退出程序}//main}个人见解,请参考

判断prompt输入数据的类型?(javascript)

var a=prompt()*1;即可

javascript中prompt()有没有返回值?

可以自己设置默认返回值,Window.prototype.prompt = function(){return "";};

Java怎么实现输入一个string表达式然后输出计算的结果

呵呵 我来了 我这个应该是贫民版的了public class Test{public static int yunsuanjibie(String s) { int r = 0; int p = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == "+" || s.charAt(i) == "-" || s.charAt(i) == "*" || s.charAt(i) == "/") { p++; } } String k[] = new String[2 * p + 1]; int k1 = 0; int first = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == "+" || s.charAt(i) == "-" || s.charAt(i) == "*" || s.charAt(i) == "/") { k[k1] = s.substring(first, i); k1++; k[k1] = "" + s.charAt(i); k1++; first = i + 1; } } k[k1] = s.substring(first, s.length()); int kp = p; while (kp > 0) { for (int i = 0; i < k.length; i++) { if (k[i].equals("*") || k[i].equals("/")) { int l; for (l = i - 1; l > -1; l--) { if (!(k[l].equals("p"))) break; } int q; for (q = i + 1; q < k.length; q++) { if (!(k[l].equals("p"))) break; } if (k[i].equals("*")) { k[i] = "" + (Integer.parseInt(k[l]) * Integer .parseInt(k[q])); k[l] = "p"; k[q] = "p"; kp--; } else { k[i] = "" + (Integer.parseInt(k[l]) / Integer .parseInt(k[q])); k[l] = "p"; k[q] = "p"; kp--; } break; } } for (int i = 0; i < 2 * p + 1; i++) { if (k[i].equals("+") || k[i].equals("-")) { int l; for (l = i - 1; l > -1; l--) { if (!(k[l].equals("p"))) break; } int q; for (q = i + 1; q < k.length; q++) { if (!(k[q].equals("p"))) break; } if (k[i].equals("+")) { k[i] = "" + (Integer.parseInt(k[l]) + Integer .parseInt(k[q])); k[l] = "p"; k[q] = "p"; kp--; } else { k[i] = "" + (Integer.parseInt(k[l]) - Integer .parseInt(k[q])); k[l] = "p"; k[q] = "p"; kp--; } break; } } for (int i = 0; i < k.length; i++) { if (!(k[i].equals("p"))) { r = Integer.parseInt(k[i]); break; } } } return r; } public static void sizeyunsuan(String s) { while (true) { int first = 0; int last = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == "(") first = i; if (s.charAt(i) == ")") { last = i; break; } } if (last == 0) { System.out.println(yunsuanjibie(s)); return; } else { String s1 = s.substring(0, first); String s2 = s.substring(first + 1, last); String s3 = s.substring(last + 1, s.length()); s = s1 + yunsuanjibie(s2) + s3; } } } public static void main(String[] args) { String s=(new Scanner(System.in)).next(); sizeyunsuan(s); }}你要输入什么就在main方法里面输入就好了

Java怎么判断输入的书是不是整型

用异常的那位好

java计算器代码

留名方便找,

java 计算器小功能提示(除数不为0,显示数位有控制)

import javax.swing.*; import javax.swing.border.Border; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.HashMap; /** * 我的计算器。MyCalculator 继承于 JFrame,是计算器的界面 */ public class Calculator extends JFrame { /** * */ private static final long serialVersionUID = 1L; private Border border = BorderFactory.createEmptyBorder(5, 5, 5, 5); private JTextField textbox = new JTextField("0"); private CalculatorCore core = new CalculatorCore(); private ActionListener listener = new ActionListener() { public void actionPerformed(ActionEvent e) { JButton b = (JButton) e.getSource(); String label = b.getText(); String result = core.process(label); textbox.setText(result); } }; public Calculator(String title) throws HeadlessException { super(title); // 调用父类构造方法 setupFrame(); // 调整窗体属性 setupControls(); // 创建控件 } private void setupControls() { setupDisplayPanel(); // 创建文本面板 setupButtonsPanel(); // 创建按钮面板 } // 创建按钮面板并添加按钮 private void setupButtonsPanel() { JPanel panel = new JPanel(); panel.setBorder(border); panel.setLayout(new GridLayout(4, 5, 3, 3)); createButtons(panel, new String[]{ "7", "8", "9", "+", "C", "4", "5", "6", "-", "CE", "1", "2", "3", "*", "", // 空字符串表示这个位置没有按钮 "0", ".", "=", "/", "" }); this.add(panel, BorderLayout.CENTER); } /** * 在指定的面板上创建按钮 * * @param panel 要创建按钮的面板 * @param labels 按钮文字 */ private void createButtons(JPanel panel, String[] labels) { for (String label : labels) { // 如果 label 为空,则表示创建一个空面板。否则创建一个按钮。 if (label.equals("")) { panel.add(new JPanel()); } else { JButton b = new JButton(label); b.addActionListener(listener); // 为按钮添加侦听器 panel.add(b); } } } // 设置显示面板,用一个文本框来作为计算器的显示部分。 private void setupDisplayPanel() { JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBorder(border); setupTextbox(); panel.add(textbox, BorderLayout.CENTER); this.add(panel, BorderLayout.NORTH); } // 调整文本框 private void setupTextbox() { textbox.setHorizontalAlignment(JTextField.RIGHT); // 文本右对齐 textbox.setEditable(false); // 文本框只读 textbox.setBackground(Color.white); // 文本框背景色为白色 } // 调整窗体 private void setupFrame() { this.setDefaultCloseOperation(EXIT_ON_CLOSE); // 当窗体关闭时程序结束 this.setLocation(100, 50); // 设置窗体显示在桌面上的位置 this.setSize(300, 200); // 设置窗体大小 this.setResizable(false); // 窗体大小固定 } // 程序入口 public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); Calculator frame = new Calculator("我的计算器"); frame.setVisible(true); // 在桌面上显示窗体 } } /** * 计算器核心逻辑。这个逻辑只能处理 1~2 个数的运算。 */ class CalculatorCore { private String displayText = "0"; // 要显示的文本 boolean reset = true; int MaxLen = 30; private BigDecimal number1, number2; private String operator; private HashMap<String, Operator> operators = new HashMap<String, Operator>(); private HashMap<String, Processor> processors = new HashMap<String, Processor>(); CalculatorCore() { setupOperators(); setupProcessors(); } // 为每种命令添加处理方式 private void setupProcessors() { processors.put("[0-9]", new Processor() { public void calculate(String command) { numberClicked(command); } }); processors.put("\.", new Processor() { public void calculate(String command) { dotClicked(); } }); processors.put("=", new Processor() { public void calculate(String command) { equalsClicked(); } }); processors.put("[+\-*/]", new Processor() { public void calculate(String command) { operatorClicked(command); } }); processors.put("C", new Processor() { public void calculate(String command) { clearClicked(); } }); processors.put("CE", new Processor() { public void calculate(String command) { clearErrorClicked(); } }); } // 为每种 operator 添加处理方式 private void setupOperators() { operators.put("+", new Operator() { public BigDecimal process(BigDecimal number1, BigDecimal number2) { return number1.add(number2); } }); operators.put("-", new Operator() { public BigDecimal process(BigDecimal number1, BigDecimal number2) { return number1.subtract(number2); } }); operators.put("*", new Operator() { public BigDecimal process(BigDecimal number1, BigDecimal number2) { return number1.multiply(number2); } }); operators.put("/", new Operator() { public BigDecimal process(BigDecimal number1, BigDecimal number2) { return number1.divide(number2, 30, RoundingMode.HALF_UP); } }); } // 根据命令处理。这里的命令实际上就是按钮文本。 public String process(String command) { for (String pattern : processors.keySet()) { if (command.matches(pattern)) { processors.get(pattern).calculate(command); break; } } return displayText; } // 当按下 CE 时 private void clearErrorClicked() { if (operator == null) { number1 = null; } else { number2 = null; } displayText = "0"; reset = true; } // 当按下 C 时,将计算器置为初始状态。 private void clearClicked() { number1 = null; number2 = null; operator = null; displayText = "0"; reset = true; } // 当按下 = 时 private void equalsClicked() { calculateResult(); number1 = null; number2 = null; operator = null; reset = true; } // 计算结果 /** * */ private void calculateResult() { number2 = new BigDecimal(displayText); Operator oper = operators.get(operator); if (oper != null) { try { BigDecimal result = oper.process(number1, number2); displayText = result.toString(); } catch (RuntimeException e) { clearClicked();//将计算器置为初始状态 JOptionPane.showMessageDialog(null,"不能用零作除数","出错了",JOptionPane.OK_OPTION); //e.printStackTrace(); } } } // 当按下 +-*/ 时(这里也可以扩展成其他中间操作符) private void operatorClicked(String command) { if (operator != null) { calculateResult(); } number1 = new BigDecimal(displayText); operator = command; reset = true; } // 当按下 . 时 private void dotClicked() { if (displayText.indexOf(".") == -1) { displayText += "."; } else if (reset) { displayText = "0."; } reset = false; } // 当按下 0-9 时 private void numberClicked(String command) { if (reset) { displayText = command; } else { if(displayText.length()< MaxLen) displayText += command; else JOptionPane.showMessageDialog(null,"输入的数字太长了","出错了",JOptionPane.OK_OPTION); } reset = false; } // 运算符处理接口 interface Operator { BigDecimal process(BigDecimal number1, BigDecimal number2); } // 按钮处理接口 interface Processor { void calculate(String command); } }

javascript怎么定义函数

一、正常方法function print(msg){ document.write(msg);}对函数进行调用的几种方式:函数名(传递给函数的参数1,传递给函数的参数2,….)变量 = 函数名(传递给函数的参数1,传递给函数的参数2,….)对于有返回值的函数调用,也可以在程序中直接使用返回的结果,例如:alert("sum=“+ square(2,3));不指定任何函数值的函数,返回undefined二、构造函数方法 new Function();//构造函数方式定义javascript函数 注意Function中的F大写var add=new Function("a","b","return a+b;");//调用上面定义的add函数var sum=add(3,4);alert(sum);//弹出7注:接受任意多个字符串参数,最后一个参数是函数体。如果只传一个字符串,则其就是函数体。三、函数直接量定义函数//使用函数直接量的方式定义函数var result=function(a,b){return a+b;}//调用使用函数直接量定义的函数var sum=result(7,8);alert(sum);注:函数直接量是一个表达式,它可以定义匿名函数匿名函数如下:btnElement.onclick=function(){alert("点击按钮");}

急求JAVA计算器源代码

//去年做的,没有四则混合运算功能,不过加上这个功能应该不难,我现在忙,没那个精力,不好意思import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Calculator extends JFrame implements ActionListener,KeyListener{ String s="";//S 控制文本框 float k=0;//K P 保存值 float p=0; int b=0;//控制运算符号 JPanel p1=new JPanel(); JPanel p2=new JPanel(); JTextField text=new JTextField(10); GridLayout gridLayout=new GridLayout(); JButton bc=new JButton("复位"); JButton b0=new JButton("0"); JButton b1=new JButton("1"); JButton b2=new JButton("2"); JButton b3=new JButton("3"); JButton b4=new JButton("4"); JButton b5=new JButton("5"); JButton b6=new JButton("6"); JButton b7=new JButton("7"); JButton b8=new JButton("8"); JButton b9=new JButton("9"); JButton bd=new JButton("."); JButton bj=new JButton("+"); JButton bji=new JButton("-"); JButton bs=new JButton("*"); JButton bchu=new JButton("/"); JButton bden=new JButton("="); private void init(){ gridLayout.setColumns(4); gridLayout.setRows(4); gridLayout.setHgap(8); gridLayout.setVgap(8); text.setHorizontalAlignment(JTextField.RIGHT ); p1.add(text,"West"); p1.add(bc,"East"); p2.setLayout(gridLayout); p2.add(b7); p2.add(b8); p2.add(b9); p2.add(bchu); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bs); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bji); p2.add(b0); p2.add(bd); p2.add(bj); p2.add(bden); } private void listener(){ bc.addActionListener(this); b0.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); bd.addActionListener(this); bj.addActionListener(this); bji.addActionListener(this); bs.addActionListener(this); bchu.addActionListener(this); bden.addActionListener(this); } public Calculator() { this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0); } }); this.init(); this.listener(); this.add(p1,"North"); this.add(p2,"Center"); } public static void main(String[] args) { Calculator mainframe=new Calculator(); mainframe.setSize(200,250); mainframe.setLocationRelativeTo(null);//居中 mainframe.setTitle("calculator"); mainframe.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand()=="0"){ if(b!=5){ s=s+"0"; text.setText(s); } } if(e.getActionCommand()=="1"){ if(b!=5){ s=s+"1"; text.setText(s); } } if(e.getActionCommand()=="2"){ if(b!=5){ s=s+"2"; text.setText(s); } } if(e.getActionCommand()=="3"){ if(b!=5){ s=s+"3"; text.setText(s); } } if(e.getActionCommand()=="4"){ if(b!=5){ s=s+"4"; text.setText(s); } } if(e.getActionCommand()=="5"){ if(b!=5){ s=s+"5"; text.setText(s); } } if(e.getActionCommand()=="6"){ if(b!=5){ s=s+"6"; text.setText(s); } } if(e.getActionCommand()=="7"){ if(b!=5){ s=s+"7"; text.setText(s); } } if(e.getActionCommand()=="8"){ if(b!=5){ s=s+"8"; text.setText(s); } } if(e.getActionCommand()=="9"){ if(b!=5){ s=s+"9"; text.setText(s); } } if(e.getActionCommand()=="."){ if(b!=5){ if(s.indexOf(".")==-1) s=s+"."; text.setText(s); } } if(e.getActionCommand()=="复位"){ s=""; text.setText(s); k=0; p=0; b=0; } if(e.getActionCommand()=="+"){ if(s!=""){ //k=Float.parseFloat(s); if(b!=0&&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=""; } b=1; } if(e.getActionCommand()=="-"){ if(s!=""){ if(b!=0&&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=""; } b=2; } if(e.getActionCommand()=="*"){ if(s!=""){ if(b!=0&&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=""; } b=3; } if(e.getActionCommand()=="/"){ if(s!=""){ if(b!=0&&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=""; } b=4; } if(e.getActionCommand()=="="){ s=equal(s, p, k, b); text.setText(s); b=5;//b=5控制等号以后不能直接跟数字 } } public String equal(String s,float p,float k,int b){ if(s!=""){ //System.out.println("program is run here"); p=Float.parseFloat(s); if(b==1) s=""+(p+k); if(b==2) s=""+(k-p); if(b==3) s=""+(p*k); if(b==4) if(p==0){ s="除数不能为零"; }else s=""+(k/p); } return s; } public void keyPressed(KeyEvent e) { //if(e.getKeyLocation()=="+") } public void keyReleased(KeyEvent arg0) { } public void keyTyped(KeyEvent arg0) { }}

java高手请进——请教数组越界问题

0

什么是JAVA的代码?

java源代码是代码,你写在java编程语言。 Java source code is converted to Java bytecode by the Java compiler . java源代码转换成java的字节码 ,由爪哇编译器。 Java source code files usually have the .java extension. java源代码文件通常有。 java扩展。 Sun recommends that Java source code files be no longer than two thouand lines.孙建议java源代码的档案已不再超过两个thouand线。 Larger source code files should be split up into multiple smaller files.较大的源代码文件应分裂成多个较小的文件。

什么是java的source code

如果你用开发工具,比如eclipse,那么鼠标滑过代码时,会有一个层显示出来,是一些对代码的介绍.如果是系统定义的类型,你按住ctrl点击这个文字,会跳到所谓源代码(sourcecode)了.而默认,鼠标滑过,按下shift,也会有源代码提示的.前提是你设置好了sourcecode的路径.

设计一个方法,根据提供的str字符串信息自动封装成java对象?

public class Demo { private String str; public Demo(String str) { this.str = str; } public Object autoPackage() { Object obj = null; if (str != null && str.length() > 0) { String[] strs = str.split("&"); if (strs.length > 0) { // 获取类名 String className = strs[0].split("=")[1]; try { // 根据类名获取类 Class<?> clazz = Class.forName(className); obj = clazz.newInstance(); // 获取类的属性 Field[] fields = clazz.getDeclaredFields(); for (int i = 1; i < strs.length; i++) { for (Field field : fields) { // 获取属性名,判断是否与字符串相等 String fieldName = field.getName(); if (fieldName.equals(strs[i].split("=")[0])) { // 获取属性值 String fieldValue = strs[i].split("=")[1]; // 设置属性值 field.setAccessible(true); field.set(obj, fieldValue); } } } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) { e.printStackTrace(); } } } return obj; }}

3.编写一个程序,统计出某个字符串中大写英文字母个数、小写英文在字母个数、数字的个数。substring java

public static void main(String[] args) { String str="asdmlFDSAGF123455"; char[] cs=str.toCharArray(); int numCount=0; int UpCount=0;//大写字母个数 int LowCount=0;//小写字母个数 for(char c:cs){ if(c>47&&c<58){ numCount++; }else if(c>64&&c<91){ UpCount++; }else if(c>96&&c<123){ LowCount++; } } System.out.println("数字个数为:"+numCount); System.out.println("大写字母个数为:"+UpCount); System.out.println("小写字母个数为:"+LowCount); }

在javascript中用animation-play-state paused和running

.pause{ animation-play-state:paused;}插入animation-play-state:paused;样式.js:document.getElementById("xxx").className="pause";jquery:$("#cc").addClass("pause");chrome v43 测试可以停止动画

什么是JAVA?它有哪些作用和功能?

简单来讲,JAVA是一种编程语言,用于J2EE(企业级WEB管理信息系统)J2SE(应用程序)J2ME(手机系统、游戏)等开发

JAVA是什么

java 是一种编程语言 可以跨平台 应用广泛Java分为三个体系JavaSE(Java2 Platform Standard Edition),JavaEE(Java 2 Platform,Enterprise Edition),JavaME(Java 2 Platform Micro Edition)。

什么是java

一个面向对象的编程语言 计算机上你看到的东西 软件 网页 的神马 都可以的写出来的。。。。

什么是JAVA

去百度百科看呀,非常详细的http://baike.baidu.com/view/29.htm?fr=ala0_1_1

Java包含哪些内容?

Java在当下发展是越来越引人注目,Java作为世界上排名第一的计算机编程语言,应用领域不断拓展,很多朋友看中Java良好的发展前景跟就业前景,很想对Java有个深入的了解,想知道Java包含哪些内容?该怎么学?一起跟北京北大青鸟具体来了解下吧。一、Java包含哪些内容?Java包含的内容是相当的丰富,具体内容如下:1.Java简单教程:Java开发环境配置Java基础语法Java对象和类Java基本数据类型Java变量类型Java修饰符Java运算符Java循环结构Java分支结构JavaNumber&Math类JavaCharacter类等等内容。2.Java面向对象:Java继承Java多态Java抽象类Java封装Java接口Java包(package)等内容。3.Java高级教程:Java数据结构Java集合框架Java泛型Java序列化Java网络编程Java发送邮件Java多线程编程等等内容。二、Java该怎么学?以上还只是Java的一小部分内容,Java从最初诞生到当下已经20多年,Java知识体系在不断的拓展完善,你需要掌握的Java知识非一日之工就可以学成的,并且Java作为高精尖的计算机编程语言也不是那么容易征服的,小编建议学Java到专业靠谱的Java培训机构去学比较好,能减少很多不必要的摸索时间。

java具体是什么意思?

1.java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。2.java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!java学习内容主要有:①JAVA编程基础(基础语法、面向对象、和谐特性等)②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)④项目实训互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,建议实地考察对比一下。祝你学有所成,望采纳。java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。java是目前主流的开发语言,程序员不论是大数据、云计算、web前端、后端开发等都需要从java学起,如果你想计入IT高薪行列,建议学java!java学习内容主要有:①JAVA编程基础(基础语法、面向对象、和谐特性等)②WEB应用开发(静态网页制作、Oracle数据库、Java Web开发技术、Linux技术、网站性能与安全、软件工程开发流程、Java Web和谐等)③企业级框架开发(数据结构与算法、SSH框架、JavaEE和谐等)④项目实训互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,建议实地考察对比一下。祝你学有所成,望采纳。

JAVA是什么软件?

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器显示了Java的魅力。

JAVA是什么

Java是Sun公司推出的一种编程语言。它是一种通过解释方式来执行的语言,语法规则和C++类似。同时,Java也是一种跨平台的程序设计语言。用Java语言编写的程序叫做“Applet”(小应用程序),用编译器将它编译成类文件后,将它存在WWW页面中,并在HTML档上作好相应标记,用户端只要装上Java的客户软件就可以在网上直接运行“Applet”。 Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。 Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构 中立性、可移植性、高性能、多线程、动态性等。Java摈弃了C++中各种弊大于利的功能和许多很少用到的功能。 Jave可以运行与任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。面向对象的模型·对象模型对象模型表示了静态的、结构化的系统数据性质,描述了系统的静态结构,它是从客观世界实体的对象关系角度来描述,表现了对象的相互关系。该模型主要关心系统中对象的结构、属性和操作,它是分析阶段三个模型的核心,是其他两个模型的框架。1.对象和类(1) 对象。对象建模的目的就是描述对象。(2) 类。通过将对象抽象成类,我们可以使问题抽象化,抽象增强了模型的归纳能力。(3) 属性。属性指的是类中对象所具有的性质(数据值)。(4) 操作和方法。操作是类中对象所使用的一种功能或变换。类中的各对象可以共享操作,每个操作都有一个目标对象作为其隐含参数。方法是类的操作的实现步骤。2.关联和链关联是建立类之间关系的一种手段,而链则是建立对象之间关系的一种手段。(1) 关联和链的含义。链表示对象间的物理与概念联结,关联表示类之间的一种关系,链是关联的实例,关联是链的抽象。(2) 角色。角色说明类在关联中的作用,它位于关联的端点。(3) 受限关联。受限关联由两个类及一个限定词组成,限定词是一种特定的属性,用来有效的减少关联的重数,限定词在关联的终端对象集中说明。限定提高了语义的精确性,增强了查询能力,在现实世界中,常常出现限定词。(4) 关联的多重性。关联的多重性是指类中有多少个对象与关联的类的一个对象相关。重数常描述为“一”或“多”。图10-8表示了各种关联的重数。小实心圆表示“多个”,从零到多。小空心圆表示零或一。没有符号表示的是一对一关联。3.类的层次结构(1) 聚集关系。聚集是一种“整体-部分”关系。在这种关系中,有整体类和部分类之分。聚集最重要的性质是传递性,也具有逆对称性。聚集可以有不同层次,可以把不同分类聚集起来得到一颗简单的聚集树,聚集树是一种简单表示,比画很多线来将部分类联系起来简单得多,对象模型应该容易地反映各级层次,图10-10表示一个关于微机的多极聚集。(2)一般化关系。一般化关系是在保留对象差异的同时共享对象相似性的一种高度抽象方式。它是“一般---具体”的关系。一般化类称为你类,具体类又能称为子类,各子类继承了交类的性质,而各子类的一些共同性质和操作又归纳到你类中。因此,一般化关系和继承是同时存在的。一般化关系的符号表示是在类关联的连线上加一个小三角形,如图10-11 4.对象模型(1)模板。模板是类、关联、一般化结构的逻辑组成。(2)对象模型。对象模型是由一个或若干个模板组成。模板将模型分为若干个便于管理的子块,在整个对象模型和类及关联的构造块之间,模板提供了一种集成的中间单元,模板中的类名及关联名是唯一的。·动态模型动态模型是与时间和变化有关的系统性质。该模型描述了系统的控制结构,它表示了瞬间的、行为化的系统控制性质,它关心的是系统的控制,操作的执行顺序,它表示从对象的事件和状态的角度出发,表现了对象的相互行为。该模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织。使用状态图作为描述工具。它涉及到事件、状态、操作等重要概念。1.事件事件是指定时刻发生的某件事。2.状态状态是对象属性值的抽象。对象的属性值按照影响对象显著行为的性质将其归并到一个状态中去。状态指明了对象对输入事件的响应。3.状态图状态图是一个标准的计算机概念,他是有限自动机的图形表示,这里把状态图作为建立动态模型的图形工具。状态图反映了状态与事件的关系。当接收一事件时,下一状态就取决于当前状态和所接收的该事件,由该事件引起的状态变化称为转换。状态图是一种图,用结点表示状态,结点用圆圈表示;圆圈内有状态名,用箭头连线表示状态的转换,上面标记事件名,箭头方向表示转换的方向。·功能模型功能模型描述了系统的所有计算。功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。功能模型表明一个计算如何从输入值得到输出值,它不考虑计算的次序。功能模型由多张数据流图组成。数据流图用来表示从源对象到目标对象的数据值的流向,它不包含控制信息,控制信息在动态模型中表示,同时数据流图也不表示对象中值的组织,值的组织在对象模型中表示。图10-15给出了一个窗口系统的图标显示的数据流图。数据流图中包含有处理、数据流、动作对象和数据存储对象。1.处理数据流图中的处理用来改变数据值。最低层处理是纯粹的函数,一张完整的数据流图是一个高层处理。2.数据流数据流图中的数据流将对象的输出与处理、处理与对象的输入、处理与处理联系起来。在一个计算机中,用数据流来表示一中间数据值,数据流不能改变数据值。3.动作对象动作对象是一种主动对象,它通过生成或者使用数据值来驱动数据流图。4.数据存储对象数据流图中的数据存储是被动对象,它用来存储数据。它与动作对象不一样,数据存储本身不产生任何操作,它只响应存储和访问的要求。

Java是什么?

Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名称正式发布,原因是Oak已经被人注册了,因此SUN注册了Java这个商标。随着互联网的高速发展,Java逐渐成为最重要的网络编程语言。Java介于编译型语言和解释型语言之间。编译型语言如C、C++,代码是直接编译成机器码执行,但是不同的平台(x86、ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码。解释型语言如Python、Ruby没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。而Java是将代码编译成一种“字节码”,它类似于抽象的CPU指令,然后,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行,这样就实现了“一次编写,到处运行”的效果。当然,这是针对Java开发者而言。对于虚拟机,需要为每个平台分别开发。为了保证不同平台、不同公司开发的虚拟机都能正确执行Java字节码,SUN公司制定了一系列的Java虚拟机规范。从实践的角度看,JVM的兼容性做得非常好,低版本的Java字节码完全可以正常运行在高版本的JVM上。随着Java的发展,SUN给Java又分出了三个不同版本:Java SE:Standard EditionJava EE:Enterprise EditionJava ME:Micro Edition

java是什么意思?

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

JAVA开发需要哪些技术?

首先基础部分,需要熟练掌握基础语法、核心类库、异常、集合、IO流、反射等基础知识点,并且能倒背如流,这样面试官问你相关问题,你可以很快回答出来。可不要小看这些基础知识,你工作中遇到的问题很多都需要基础知识来解决,所以基础要打牢。其次要掌握Java开发常用的框架,目前的主流框架有SpringMVC、Mybatis、Spring及Maven等等,这些框架可以帮助我们简化日常的Web开发、查询SQL,很受企业欢迎。学懂框架后你可以通过学习Linux操作系统+Redis从而更高效的处理数据,学习Ngix+Tomcat+Oracle三层物理架构从而快速的运行项目第三掌握 JavaScript、jQuery脚本语言和异步交互技术AJAX等技术,学会这些技术你就可以自己开发网页,这样就拓宽了你的就业方向,而且目前很多公司都比较重视AJAX技术,如果你懂这个在找工作的时候也是一个加分项。以上技术,就是做Java开发需要的技术。如果你是零基础学Java,可以主要学习小编列出的这些技术,这样你可以少走很多弯路。如果你还想再加强自己的竞争力,那么还可以报班学习Java,以上的知识培训班基本都能学到,而且培训班还有实战环节,帮助你掌握理论知识、熟悉实战操作,找工作更容易。而且有的培训机构还有就业服务环节,如果你自己不能找到工作,培训机构会给你推荐,这样找工作的压力会比较小。

Java包含哪些内容?

Java在当下发展是越来越引人注目,Java作为世界上排名第一的计算机编程语言,应用领域不断拓展,很多朋友看中Java良好的发展前景跟就业前景,很想对Java有个深入的了解,想知道Java包含哪些内容?该怎么学?一起跟北京北大青鸟具体来了解下吧。一、 Java包含哪些内容?Java包含的内容是相当的丰富,具体内容如下:1.Java简单教程:Java 开发环境配置 Java 基础语法 Java 对象和类 Java 基本数据类型 Java 变量类型 Java 修饰符 Java 运算符 Java 循环结构 Java 分支结构 Java Number & Math 类 Java Character 类等等内容。2. Java 面向对象:Java 继承 Java 多态 Java 抽象类 Java 封装 Java 接口 Java 包(package)等内容。3. Java 高级教程:Java 数据结构 Java 集合框架 Java 泛型 Java 序列化 Java 网络编程 Java 发送邮件 Java 多线程编程等等内容。  二、 Java该怎么学?以上还只是Java的一小部分内容,Java从最初诞生到当下已经20多年,Java知识体系在不断的拓展完善,你需要掌握的Java知识非一日之工就可以学成的,并且Java作为高精尖的计算机编程语言也不是那么容易征服的,小编建议学Java到专业靠谱的Java培训机构去学比较好,能减少很多不必要的摸索时间。

java是一种什么技术?

Java是一种高级语言,就是用来编程的,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等 。相关工作用途:1、Java可以开发网站,例如,一些企业的门户网站;2、Java可以做软件,例如,信息管理系统、员工打卡系统;3、Java用于手机开发,例如,做手机系统。4、Java做游戏,例如一些网络游戏,手机游戏等等。Java开发工程师的未来发展方向大致分为两类:一是成为管理人员,例如产品研发经理,技术经理,项目经理等;二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。

java是什么?

Java简单来说是一门面向对象编程语言。Java吸收了c语言的各种优点,摒弃了C++里难以理解的多继承、指针等概念,增加java的学习性。Java语言特征:功能强大,简单易用。对java的评价是:Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

java是什么?

面向编程语言

java是什么意思?来源是哪里?

java是一个岛的名称。汉语叫爪哇岛。据说sun在给java取名时,曾取了几个。不过都被别人注册了。后来突然看到桌子上的咖啡盒,注明该咖啡产自爪哇岛,遂取名java。

java怎么读,是什么意思啊

加哇 - - 它是一种编程语言

java是什么

java是一门面向对象的计算机编程语言,于1995年第一次被推出,具有功能强大和简单易用两个特征。其工作原理由Java编程语言、Java类文件格式、Java虚拟机、Java应用程序接口四方面组成。

请问Java是什么意思?它是干什么的?

分类: 电脑/网络 >> 电脑常识 问题描述: 请问Java是什么意思?它是干什么的? 解析: JAVA介绍 一、前言 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Inter和多 媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW)地位就如同电子表格(Spreadsheet)与个人计 算机(PC)的关系。那Java究竟有那些特色呢? Java是一种软件技术 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种为 Inter发展的计算机语言 是一种使网页(Web Page)产生生动活泼画面的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种语言,用以产生「小应用程序(Applet(s))」 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 是一种将安全性(Security)列为第一优先考虑的语言 是一种使用者不需花费很多时间学习的语言 是一种突破用户端机器环境和CPU结构的语言 是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允 使用者将应用程序(Applications)通过Inter从远端的服务器(Remote Server)传输到本地端的机器 上(LocalMachine)并执行 是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或MAC等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。 下面将依序地介绍Java,首先是Java的发展历史与Java语言介绍,其次依序是Java Applet和HotJava的简单介绍。 二、Java FAQ 下面以问答的方式来说明Java的发展历史与其背景(下列内容整理自 Java FAQ list and Tutorial和The Java Language: A White Paper,读者若欲深 入了解,请自行参阅原文): Java何时开始发展?(When) 最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语 言的前身),后因语言本身和市场的问题, 使得消费性电子产品的发展无法达到当初 预期的目标,再加上网络的兴起, 绿色计划也因此而改变发展的方向,这已是1994 年了。 为何称之为Java?(Why) "Java"是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。 生动(Liveliness)、动画(Animation)、速度(Speed)、交互性(Interactivity)为当 初选择名字时所欲表达出的特色。"Java"是在无数的建议中脱颖而出的,而"Java" 不是由几个单字的首字所组成, 而是从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。 谁开发了Java?(Who) Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家较为熟悉的成员是James Gosling。 在那里开发了Java?(Where) 也就是问Java的出生地?答案是美国。 如何可以找到所需的Java信息?(How to) 在网路上,您可以连到Sun公司的Java WWW网站,URL是java.sun/,或是 javasoft/。在那里几乎可以找到您所需要的所有Java信息,但是语 言多少是一个障碍, 至少对某些人而言;没关系,目前国内已有很多个网站提供中文 Java信息。在清华和中科院的FTP站点上有不少有关资料。想象以后应会有更多的站点提供相关信息。 如何才能看到Java的效果?(How Do I) 首先您需要有含有Java解释器的浏览器(Browser),例如:Netscpae公司的Netscape Navigator 2.0以上或是Sun公司的HotJava浏览器,对个人计算机使用者而言,操作 系统需是Windows 95或是Windows NT。 Java是因为撰写C++语言程序时的困难而研制开的,起先,只是一个消费性电子产品 大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的编译问题一直到最 后的一连串问题迫使得放弃C++语言,而有Java语言的产生。Sun是要Java成为一个简 单(Simple)、面向对象的(Object Oriented)、 分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、 结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言(摘译自 TheJava Language: A White Paper, 1995)。 在Sun的Java语言白皮书中明白地说明上述Java语言的技巧。若以木工为比喻,一个面 向对象的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具; 反之;一个以非面向对象的木工,他(她)所关心的只是工具。最近的即插即用(Plug and Play)亦是面向对象设计的重点。 分布式的(Distributed):Java有一个很周全的程薪录JAVA介绍 。 一、 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Inter和 多媒体(Multimedia)相关产品类方面。Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW)地位就如同电子表格(Spreadsheet)与个人计 算机TTP和FTP等TCP/IP通讯协定相配合。Java应用程序(Applications) 能在网路上开启及连结使用物件,就如同透过URLs连结使用一个本地文件系统(Local File System)。 健壮的(Robust):由Java所编写出的程序能在多种情况下执行而具有其稳定性。Java与 C/C++最大不同点是Java有一个指针模型(Pointer Model)来排除内存被覆盖(Overwriting Memory)和毁损数据(Corrupting Data)的可能性。 安全的(Secure):Java是被设计用于网络及分布式的环境中,安全性自必是一个很 重要的考虑。Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止病 毒的侵入和破坏行为的发生。 结构中立的(Architecture Neutral):一般而言,网络是由很多不同机型的机器所 组合而成的,CPU和作业系统体系结构均有所不同;因此,如何使一个应用程序可以 在每一种机器上执行,是一个难题。所幸,Java的编译器产生一种结构中立的目标 文件格式(Object File Format);这使得编译码得以在很多种处理器中执行。 可移植的(Portable):原始资料型式的大小是被指定的,例如"float"一直是表示一 个32位元IEEE 754浮点运算数字,因绝大多数的CPU都具有此共同特征。程序库属于 系统的一部份,它定义了一些可移植的程序接口,Java本身具备有很好的可移植性。 解释的(Interpreted):Java解释器能直接地在任何机器上执行Java位元码(Bytecodes), 因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,有极大的帮助。 高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code), 从位元码转换到机器码的效能几乎与C与C++没有分别。 多线程的(Multi threaded):Java语言具有多线程的功能,这对于交互回应能力及 即时执行行为是有帮助的。 动态的(Dynamic):Java比C或C++语言更具有动态性,更能适应时刻在变的环境, Java不会因程序库的更新,而必须重新编译程序。 此外,Hank Shiffman (Making Sense of Java)亦针一般对Java的错误看法及观 念提出他的说明,特在此摘译如下: "Java是一种编写Web Pages的一种语言,就如同HTML和VRML一样" 事实上,Java并不像是HTML此一类的描述语言(Description Language),而是一种 编程语言(Programming Language)。描述语言标明内容和位置,而编程语言描述一 种产生结果的过程。 2. "Java语言容易学习和使用,不像C、C++和其它程序语言" Java是一种编程语言。Java容易学吗?Java或许是比C或C++容易学,但仍是一种编程语言,而不是一种描述语言。 3. "Java码是可移植的,但C及C++不是" Java原代码(Source Code)是比C语言来得可移植一点,差别在于Java的目标码。 Java码在一种机器上进行编译,而能在所有的机器上执行, 只要那部机器上有 Java解释器。 4. "Java能被拓展而在机器上执行任何事情" 理论上,Java Applet (Java小应用程序)能做任何事情,如模拟3D VRML模型、播放电影、产生音频....等。但事实上,一个小应用程序(Applet)仅能在那一页上被执行,而无法在那一页之外执行。同时,Java亦受限于程序库的功能。 5. "Java是适合于建立大型的应用程序" 如果Java适合于大型程序,则Java就不适合应用于Web浏览器了。第一个商业 性的Java Applets (Applix"s Java-Based Spreadsheet) 并不是全然使用Java, 它只使用Java作为用户接口,而所有的处理工作, 是用CGI码。 6. "Java是解释执行的,Basic是解释执行的,因此Java=Basic" 虽然Java的确是使用解释器,但事实上,Java则与C或C++等完全编译语言较为相近,但与Basic或APL等完全解译语言较不相近。 7. "Java删除了CGI命令稿(Scripts)和程序的需求" Java Applets将会取代部份CGI的用途。在有些情况,Java Applets能够取代一些服务器端代码(Server-Side Code),但大多数的情况,基于安全性理由或是效 能的考虑,Java仍无法全然取代CGI Scripts。 8. "Netscape"s JavaScript是与Java有相关" 除了名称之外,Java和JavaScript是有一点点相关。JavaScript是一种命令稿语 言,是可以在HTML页中使用。Java码并未出现在HTML中,而在HTML中通过一个链 结来链结编译码组。Java和JavaScript之间的关系就如同C语言和C Shell一般。

java是什么意思?

什么是Java?Java好象随处可见 - 甚至在TV中。尽管如此,说清楚Java是什 么和它能做什么却不那么容易。刚开始接触Java的人通常有三 个问题:什么是Java? Java能做什么? Java怎样改变我的生活? 让我们先回答第一个问题:什么是Java? Java既是一种编程语言,又是一个平台。 Java程序语言 Java是具有以下特征的高级程序语言: 简单 面向对象 可分布 可解释 强壮 安全性 结构化 轻便
 首页 上一页  33 34 35 36 37 38 39 40 41 42 43  下一页  尾页