文档章节

System.getProperty("os.name")这里的key对应的value是哪里取值呢?

writeademo
 writeademo
发布于 2017/04/04 23:16
字数 1132
阅读 36
收藏 1
点赞 0
评论 0

 

System.getProperty("os.name")这里的key对应的value是哪里取值呢?

 

 

 

 

 

 

 

从这里可以看出是jvm自己默认的一些属性设置。

      System.out.println(System.getProperty("os.name"));

           System.out.println(System.getProperty("sun.boot.class.path"));

           System.out.println(System.getProperty("java.ext.dirs"));

           System.out.println(System.getProperty("awt.toolkit"));

           System.setProperty("my", "123");

           System.out.println(System.getProperty("my"));

 

也可以自定义设置key-value;

  public static String getProperty(String key) {

        checkKey(key);

        SecurityManager sm = getSecurityManager();

        if (sm != null) {

            sm.checkPropertyAccess(key);

        }

 

        return props.getProperty(key);

}

 

  public String getProperty(String key) {

        Object oval = super.get(key);

        String sval = (oval instanceof String) ? (String)oval : null;

        return ((sval == null) && (defaults != null)) ? defaults.getProperty(key) : sval;

    }

 

@SuppressWarnings("unchecked")

    public synchronized V get(Object key) {

        Entry<?,?> tab[] = table;

        int hash = key.hashCode();

        int index = (hash & 0x7FFFFFFF) % tab.length;

        for (Entry<?,?> e = tab[index] ; e != null ; e = e.next) {

            if ((e.hash == hash) && e.key.equals(key)) {

                return (V)e.value;

            }

        }

        return null;

    }         

    /**

     * The hash table data.

     */

    private transient Entry<?,?>[] table;

 

 

    /**

     * Hashtable bucket collision list entry

     */

    private static class Entry<K,V> implements Map.Entry<K,V> {

        final int hash;

        final K key;

        V value;

        Entry<K,V> next;

 

        protected Entry(int hash, K key, V value, Entry<K,V> next) {

            this.hash = hash;

            this.key =  key;

            this.value = value;

            this.next = next;

        }

 

        @SuppressWarnings("unchecked")

        protected Object clone() {

            return new Entry<>(hash, key, value,

                                  (next==null ? null : (Entry<K,V>) next.clone()));

        }

 

        // Map.Entry Ops

 

        public K getKey() {

            return key;

        }

 

        public V getValue() {

            return value;

        }

 

        public V setValue(V value) {

            if (value == null)

                throw new NullPointerException();

 

            V oldValue = this.value;

            this.value = value;

            return oldValue;

        }

 

        public boolean equals(Object o) {

            if (!(o instanceof Map.Entry))

                return false;

            Map.Entry<?,?> e = (Map.Entry<?,?>)o;

 

            return (key==null ? e.getKey()==null : key.equals(e.getKey())) &&

               (value==null ? e.getValue()==null : value.equals(e.getValue()));

        }

 

        public int hashCode() {

            return hash ^ Objects.hashCode(value);

        }

 

        public String toString() {

            return key.toString()+"="+value.toString();

        }

    }

 

    interface Entry<K,V> {

        /**

         * Returns the key corresponding to this entry.

         *

         * @return the key corresponding to this entry

         * @throws IllegalStateException implementations may, but are not

         *         required to, throw this exception if the entry has been

         *         removed from the backing map.

         */

        K getKey();

 

        /**

         * Returns the value corresponding to this entry.  If the mapping

         * has been removed from the backing map (by the iterator's

         * <tt>remove</tt> operation), the results of this call are undefined.

         *

         * @return the value corresponding to this entry

         * @throws IllegalStateException implementations may, but are not

         *         required to, throw this exception if the entry has been

         *         removed from the backing map.

         */

        V getValue();

 

        /**

         * Replaces the value corresponding to this entry with the specified

         * value (optional operation).  (Writes through to the map.)  The

         * behavior of this call is undefined if the mapping has already been

         * removed from the map (by the iterator's <tt>remove</tt> operation).

         *

         * @param value new value to be stored in this entry

         * @return old value corresponding to the entry

         * @throws UnsupportedOperationException if the <tt>put</tt> operation

         *         is not supported by the backing map

         * @throws ClassCastException if the class of the specified value

         *         prevents it from being stored in the backing map

         * @throws NullPointerException if the backing map does not permit

         *         null values, and the specified value is null

         * @throws IllegalArgumentException if some property of this value

         *         prevents it from being stored in the backing map

         * @throws IllegalStateException implementations may, but are not

         *         required to, throw this exception if the entry has been

         *         removed from the backing map.

         */

        V setValue(V value);

 

        /**

         * Compares the specified object with this entry for equality.

         * Returns <tt>true</tt> if the given object is also a map entry and

         * the two entries represent the same mapping.  More formally, two

         * entries <tt>e1</tt> and <tt>e2</tt> represent the same mapping

         * if<pre>

         *     (e1.getKey()==null ?

         *      e2.getKey()==null : e1.getKey().equals(e2.getKey()))  &amp;&amp;

         *     (e1.getValue()==null ?

         *      e2.getValue()==null : e1.getValue().equals(e2.getValue()))

         * </pre>

         * This ensures that the <tt>equals</tt> method works properly across

         * different implementations of the <tt>Map.Entry</tt> interface.

         *

         * @param o object to be compared for equality with this map entry

         * @return <tt>true</tt> if the specified object is equal to this map

         *         entry

         */

        boolean equals(Object o);

 

        /**

         * Returns the hash code value for this map entry.  The hash code

         * of a map entry <tt>e</tt> is defined to be: <pre>

         *     (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^

         *     (e.getValue()==null ? 0 : e.getValue().hashCode())

         * </pre>

         * This ensures that <tt>e1.equals(e2)</tt> implies that

         * <tt>e1.hashCode()==e2.hashCode()</tt> for any two Entries

         * <tt>e1</tt> and <tt>e2</tt>, as required by the general

         * contract of <tt>Object.hashCode</tt>.

         *

         * @return the hash code value for this map entry

         * @see Object#hashCode()

         * @see Object#equals(Object)

         * @see #equals(Object)

         */

        int hashCode();

 

        /**

         * Returns a comparator that compares {@link Map.Entry} in natural order on key.

         *

         * <p>The returned comparator is serializable and throws {@link

         * NullPointerException} when comparing an entry with a null key.

         *

         * @param  <K> the {@link Comparable} type of then map keys

         * @param  <V> the type of the map values

         * @return a comparator that compares {@link Map.Entry} in natural order on key.

         * @see Comparable

         * @since 1.8

         */

        public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey() {

            return (Comparator<Map.Entry<K, V>> & Serializable)

                (c1, c2) -> c1.getKey().compareTo(c2.getKey());

        }

 

        /**

         * Returns a comparator that compares {@link Map.Entry} in natural order on value.

         *

         * <p>The returned comparator is serializable and throws {@link

         * NullPointerException} when comparing an entry with null values.

         *

         * @param <K> the type of the map keys

         * @param <V> the {@link Comparable} type of the map values

         * @return a comparator that compares {@link Map.Entry} in natural order on value.

         * @see Comparable

         * @since 1.8

         */

        public static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue() {

            return (Comparator<Map.Entry<K, V>> & Serializable)

                (c1, c2) -> c1.getValue().compareTo(c2.getValue());

        }

 

        /**

         * Returns a comparator that compares {@link Map.Entry} by key using the given

         * {@link Comparator}.

         *

         * <p>The returned comparator is serializable if the specified comparator

         * is also serializable.

         *

         * @param  <K> the type of the map keys

         * @param  <V> the type of the map values

         * @param  cmp the key {@link Comparator}

         * @return a comparator that compares {@link Map.Entry} by the key.

         * @since 1.8

         */

        public static <K, V> Comparator<Map.Entry<K, V>> comparingByKey(Comparator<? super K> cmp) {

            Objects.requireNonNull(cmp);

            return (Comparator<Map.Entry<K, V>> & Serializable)

                (c1, c2) -> cmp.compare(c1.getKey(), c2.getKey());

        }

 

        /**

         * Returns a comparator that compares {@link Map.Entry} by value using the given

         * {@link Comparator}.

         *

         * <p>The returned comparator is serializable if the specified comparator

         * is also serializable.

         *

         * @param  <K> the type of the map keys

         * @param  <V> the type of the map values

         * @param  cmp the value {@link Comparator}

         * @return a comparator that compares {@link Map.Entry} by the value.

         * @since 1.8

         */

        public static <K, V> Comparator<Map.Entry<K, V>> comparingByValue(Comparator<? super V> cmp) {

            Objects.requireNonNull(cmp);

            return (Comparator<Map.Entry<K, V>> & Serializable)

                (c1, c2) -> cmp.compare(c1.getValue(), c2.getValue());

        }

    }

© 著作权归作者所有

共有 人打赏支持
writeademo
粉丝 23
博文 459
码字总数 171782
作品 0
东城
System.setProperty 与 System.getProperty

System可以有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。 System.getProperties()可以确定当前的系统...

Shawn_Cheung
2014/05/26
0
0
Get System Info

Ch15 系统程序设计 1 System 1.1 I/O流  public static InputStream in: 读取字符的标准输入流。  public static PrintStream out: 标准输出流。  public static PrintStream err: 标准......

长平狐
2012/09/03
52
0
Java 判断操作系统类型(适用于各种操作系统)

最近一段时间写一个授权的程序,需要获取很多信息来保证程序不能随意复制使用,必须经过授权才可以。 为了限制用户使用的操作系统,必须有统一的方法来获取才可以。 在JAVA中,通过System.ge...

zh119893
2014/06/30
376
0
java 获取系统信息(从lucene源码找的)

/ The value of <tt>System.getProperty("java.version")<tt>. / public static final String JAVA_VERSION = System.getProperty("java.version"); /** True iff this is Java version 1.1.......

jiangtao
2012/01/30
0
0
介绍一些clojure中的关键字

想更多的人进来泰伦clojure clojure是一个很优秀的语言 正题= = 首先是打印输出用到的 pr prn print println 合并字符串 str 如果木有参数则返回一个空字符串,如果有一个对象则返回.toString...

Loli控
2011/09/26
0
0
hudson 系统设置里面的properties的动态取值方式

例如: Execute Windows batch command里面有命令 tf get E:workspaceproject /login:emily,emily 这里的登录密码都是写死的,可是这个密码是每隔一段时间就要变化的, 在每个里面都去改,挺...

weiweihong
2012/09/17
273
0
System.getProperty("str")

java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 ja...

锦语冰
2016/11/30
4
0
Java 根据环境属性区分不同操作系统

Java 根据环境属性区分不同操作系统 之前项目需要配置下载文件的路径,本机系统是win 10 ,而服务器系统是CentOS。配置默认下载路径(非项目内相对路径),就会出现问题。windows 路径是由盘...

肖安安
07/09
0
0
java 怎么判断当前的系统是android系统

java 怎么判断当前的系统是android系统,使用 String os = System.getProperty("os.name").toLowerCase(); String version = System.getProperty("os.version").toLowerCase(); 打印结果是 ......

cookqq
2012/10/24
583
3
Java你可能不知道的事(3)HashMap

概述 HashMap对于做Java的小伙伴来说太熟悉了。估计你们每天都在使用它。它为什么叫做HashMap?它的内部是怎么实现的呢?为什么我们使用的时候很多情况都是用String作为它的key呢?带着这些疑...

passion9527
2016/03/15
176
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

zk实战--rpc框架集群化

在看此篇内容时需要浏览下面内容 netty实战--手写rpc框架 前文功能简介以及功能扩充 利用netty来实现一个点对点的rpc调用。客户端和服务端都是靠手写地址进行socket同学的,无法1对多,也无法...

xpbob
14分钟前
7
0
springboot 发送邮件

获取授权码 添加配置 # 账号和密码spring.mail.username=aaa@qq.comspring.mail.password=bbb# 服务器地址spring.mail.host=smtp.qq.comspring.mail.properties.mail.smtp.ssl.en...

阿豪boy
14分钟前
0
0
如何使用GNU Ring?

文章名:如何使用GNU Ring? 作者:冰焰火灵X 1079092922@qq.com 文章许可:CC BY-SA 4.0 ##1. 安装 下载GNU Ring 点击左边选择你的系统版本(这里以 GNU/Linux 为例,我使用的是Mint 18.3)...

ICE冰焰火灵X
17分钟前
1
0
深入理解springMVC

什么是spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而...

Java填坑之路
23分钟前
1
0
《射雕英雄传》书摘

1. 我虽是个飘泊江湖的贫家女子,可不是低三下四、不知自爱之人。你如真心爱我,须当敬我重我。我此生决无别念,就是钢刀架颈,也决意跟定了你。将来……将来如有洞房花烛之日,自然……自能...

k91191
33分钟前
0
0
解决:modal中datePicker 选中时,会触发modal的hidden.bs.modal事件

最近项目中发现了一个bug,具体表现为选中模态框上datepicker组件上的日期时,会触发模态框的关闭事件,导致数据编辑无法正常进行。网上搜索了下,解决方法如下: $('.datepicker').on('hid...

Funcy1122
37分钟前
0
0
Redis分布式锁的正确实现方式

前言 分布式锁一般有三种实现方式: 1.数据库乐观锁 2.基于Redis的分布式锁; 3.基于Zookeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis...

大海201506
今天
0
0
ClassNotFoundException: javax.el.ELManager

这个是因为tomcat7中的el-api2.2,有些版本太低,建议升级tomcat到8.0,利用el-api3.0就会解决这个问题。

无语年华
今天
0
0
Jvm堆内存的划分结构和优化,垃圾回收详解(详细解答篇)

在JVM中堆空间划分如下图所示 上图中,刻画了Java程序运行时的堆空间,可以简述成如下2条 1.JVM中堆空间可以分成三个大区,新生代、老年代、永久代 2.新生代可以划分为三个区,Eden区,两个幸...

嘻哈开发者
今天
1
0
CentOS 7.4 设置系统字符编码

1.语言变量LANG在 /etc/locale 文件中。 2.可以通过/ect/profile 来修改LC_TYPE 变量的值 添加如下代码 export LC_ALL="zh_CN.GBK" export LANG="zh_CN.GBK" 到profile文件中,变量的可以修改...

qimh
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部