java.lang.Short.parseShort(String s)方法实例

java.lang.Short.parseShort(String s)方法实例

width="728" height="90" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true" id="aswift_0" name="aswift_0" style="box-sizing: border-box; left: 0px; position: absolute; top: 0px;">
id="iframeu1064372_0" src="http://pos.baidu.com/acom?rdid=1064372&dc=2&di=u1064372&dri=0&dis=0&dai=1&ps=378.11111405455046x287&dcb=BAIDU_UNION_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1457082821195&ti=java.lang.Short.parseShort(String%20s)%E6%96%B9%E6%B3%95%E5%AE%9E%E4%BE%8B%20-%20java.lang&ari=1&dbv=2&drs=1&pcs=1224x623&pss=1224x1663&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1457082821&ltu=http%3A%2F%2Fwww.yiibai.com%2Fjava%2Flang%2Fshort_parseshort.html&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DooRqy6jw4luGCHUIp2s4be0qqs9Kd5y3MxqJ6FR0_OCyNBPNRXZ_XaK13nW4VtYRl_Frro6m47XcSTXO9Ybdb_%26wd%3D%26eqid%3Df463faf90001c75a0000000556d9517c&ecd=1&psr=1366x768&par=1366x728&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1457082821&qn=23ab223194b402cf&tt=1457082821172.26.1231.1234" width="728" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="box-sizing: border-box; border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">

java.lang.Short.parseShort(String s) 方法解析字符串参数为有符号的十进制short值。

声明

以下是java.lang.Short.parseShort()方法的声明

public static short parseShort(String s) throws NumberFormatException

参数

  • s -- 这是要分析包含short表示的字符串。

返回值

此方法返回由十进制参数表示的short值。

异常

  • NumberFormatException -- 如果该字符串不包含一个可分析的short。

例子

下面的例子显示java.lang.Short.parseShort()方法的使用。

package com.yiibai;

import java.lang.*;

public class ShortDemo {

   public static void main(String[] args) {

     String str = "250";

     // returns signed decimal short value of string
     short shortValue = Short.parseShort(str); 
    
     // prints signed decimalshort value
     System.out.println("Signed decimal short value for given String is =
     " + shortValue);  
  }
}   

让我们来编译和运行上面的程序,这将产生以下结果:

Signed decimal short value for String is = 250
<think>我们正在寻找java.lang包中抽象类的使用示例。java.lang包是Java的核心包,其中包含了一些抽象类。我们需要找出这些抽象类并提供使用示例。首先,回顾java.lang包中的抽象类。常见的抽象类包括: -Number:是数值包装器类(如Integer、Double等)的抽象父类。- Enum:所有枚举类型的公共基类。- Process:表示一个本地进程。- ClassLoader:用于加载类的对象。- AbstractStringBuilder:StringBuilder和StringBuffer的抽象父类(注意:这个类在java.lang包中,但它是包级私有的,通常不直接使用)。由于用户要求的是使用示例,我们将重点放在公开的抽象类上,特别是Number和Enum。1.Number类:Number是一个抽象类,它定义了各种数值类型(如int、double、byte等)的包装类的通用方法。它提供了将数值转换为byte、short、int、long、float、double的方法,但这些方法都是抽象的,需要子类实现。示例:使用Integer(Number的子类)```javaNumber num= Integer.valueOf(10);intintValue= num.intValue(); //返回int值10double doubleValue =num.doubleValue(); //返回double值10.0```2.Enum类:所有枚举类型都隐式继承Enum类。我们不能显式地继承Enum,因为Java枚举是通过关键字enum定义的。示例:定义一个枚举类型并使用```javapublicenum Day{SUNDAY,MONDAY, TUESDAY, WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}//使用Day today= Day.MONDAY;System.out.println(today.name());//输出:MONDAY```3.Process类:Process是一个抽象类,用于表示本地进程。我们可以通过Runtime.exec()或ProcessBuilder.start()方法创建一个本地进程,并返回一个Process子类的实例。示例:执行一个系统命令并获取输出```javatry {Processprocess =Runtime.getRuntime().exec("cmd /c dir");BufferedReader reader= newBufferedReader(newInputStreamReader(process.getInputStream()));Stringline;while((line= reader.readLine())!= null) {System.out.println(line);}intexitCode= process.waitFor();System.out.println("Exitedwith code: "+ exitCode);}catch (Exception e) {e.printStackTrace();}```4. ClassLoader类:这是一个抽象类,负责加载类。我们可以通过继承ClassLoader来创建自定义的类加载器。示例:自定义类加载器(简化版)```javapublicclass MyClassLoaderextends ClassLoader {@OverrideprotectedClass<?> findClass(Stringname)throws ClassNotFoundException {//自定义加载类的逻辑,例如从某个字节数组加载类byte[]classData= getClassData(name); //假设这个方法获取类的字节码if (classData== null) {thrownew ClassNotFoundException();}returndefineClass(name,classData,0,classData.length);}privatebyte[]getClassData(StringclassName){//实现从文件系统或网络等获取类字节码//这里仅为示例,返回nullreturn null;}}```注意:AbstractStringBuilder是包级私有的,所以我们不能直接使用它。因此,我们主要展示上述四个公开的抽象类。根据引用[2]:Number类是一个抽象类,其中实现的方法多数都是一些数值之间的转换。比如Integer->Byte,虽然可能会造成数据丢失。同时,引用[2]还提到了Comparable接口,但接口不是抽象类,所以我们不在这里展开。因此,我们可以总结出以下示例:示例1:使用Number抽象类示例2:使用Enum抽象类(通过枚举)示例3:使用Process抽象类示例4:使用ClassLoader抽象类现在,我们将按照要求生成相关问题。</think>### Java.lang包抽象类使用示例 在Java核心包`java.lang`中,抽象类为特定领域的类提供了基础框架和部分实现。以下是关键抽象类的使用示例: #### 1. **Number抽象类** 所有数值包装类的基类(如`Integer`、`Double`),提供数值转换方法: ```java Number num = Double.valueOf(3.14); int intVal = num.intValue(); // 3 (精度丢失) double dblVal = num.doubleValue(); // 3.14 ``` - **作用**:统一数值类型的转换接口 - **设计特点**:强制子类实现`intValue()`、`doubleValue()`等转换方法[^2] #### 2. **Enum抽象类** 所有枚举类型的隐式基类,提供枚举基础能力: ```java enum Color { RED, GREEN, BLUE } Color red = Color.RED; String name = red.name(); // "RED" int ordinal = red.ordinal(); // 0 ``` - **核心方法**: - `name()`:返回枚举常量名 - `ordinal()`:返回声明顺序索引 - **限制**:开发者不能显式继承`Enum`,需通过`enum`关键字创建 #### 3. **ClassLoader抽象类** 类加载机制的核心抽象,实现自定义加载逻辑: ```java class CustomLoader extends ClassLoader { @Override protected Class<?> findClass(String name) { byte[] bytecode = loadClassData(name); // 自定义加载逻辑 return defineClass(name, bytecode, 0, bytecode.length); } } ``` - **典型应用**:实现热部署、模块化加载等场景 #### 4. **Process抽象类** 表示本地操作系统进程: ```java Process process = Runtime.getRuntime().exec("ping 127.0.0.1"); try (BufferedReader reader = new BufferedReader( new InputStreamReader(process.getInputStream()))) { String line; while ((line = reader.readLine()) != null) { System.out.println(line); // 输出ping结果 } } ``` - **关键功能**:`getInputStream()`获取进程输出流,`destroy()`终止进程 #### 5. **AbstractStringBuilder** `StringBuilder/StringBuffer`的包级私有基类(JDK内部使用): ```java // 实际使用其子类 StringBuilder sb = new StringBuilder(); sb.append("Hello").insert(5, " World"); System.out.println(sb); // "Hello World" ``` - **设计目的**:封装可变字符序列的核心操作,避免代码重复 --- ### 抽象类设计特点 1. **部分实现 + 抽象方法** 如`Number`提供基础方法,但强制子类实现类型转换逻辑。 2. **模板方法模式** `ClassLoader`的`loadClass()`方法定义加载流程,子类实现`findClass()`。 3. **限制实例化** 所有抽象类不能直接实例化,需通过子类或工厂方法(如`Runtime.exec()`创建`Process`子类实例)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值