当前位置: 首页 > 编程日记 > 正文

学习dubbo框架的问题

  • InputStream : 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输出字节流;
  • InputStreamReader : 是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符;

Properties的load方法其实就是传进去一个输入流,字节流或者字符


流,字节流利用InputStreamReader转化为字符流,然后字符流用


BufferedReader包装,BufferedReader读取properties配置文件,每


次读取一行,分割成两个字符串。因为Properties是Map的子类,


然后用put将两个字符串装进Properties对象。

 

Class<T>在实例化的时候,T要替换成具体类
Class<?>它是个通配泛型,?可以代表任何类型

method invoke 方法

java.lang.reflect.Method
public Object invoke(Object obj, Object... args)
参数:
obj:从中调用底层方法的对象,必须是实例化对象
args: 用于方法调用,是一个object的数组,因为参数有可能有多个
返回:
使用参数args在obj上指派该对象所表示的方法的结果。
invoke方法中的obj就是一个实例化对象,可以直接返回对象的中每个属性的值。
加上后面的agrs结果是一样的。
就是调用类中的方法,最简单的用法是可以把方法参数化
invoke(class, method)
比如你Test类里有一系列名字相似的方法setValue1、setValue2等等
可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue

synchronized详解


Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。

一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。

二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。

三、尤其关键的是,当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其它synchronized(this)同步代码块的访问将被阻塞。

四、第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其它线程对该object对象所有同步代码部分的访问都被暂时阻塞。

五、以上规则对其它对象锁同样适用.

HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。

  1. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。
  2. HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
  3. 另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。
  4. 由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。
  5. HashMap不能保证随着时间的推移Map中的元素次序是不变的。


[java] view plaincopy print?
    1. package com.xiaozhi.helloio;  
    2. import java.io.FileInputStream;  
    3. import java.io.IOException;  
    4. import java.util.Properties;  
    5. public class Test7 {  
    6. public static void main(String[] args) throws IOException {  
    7. Properties properties=new Properties();  
    8. properties.load(new FileInputStream("c:\\xiaozhi.properties"));  
    9. System.out.println(properties.getProperty("lisi"));  
    10. System.out.println(properties.getProperty("zhangsan"));  
    11. }

转载于:https://www.cnblogs.com/zlj1992/p/7234662.html

相关文章:

Android 控件 之 Menu 菜单

http://www.cnblogs.com/Mrs-cc/archive/2012/07/21/2603042.html 1.OptionsMenu &#xff08;选项菜单&#xff09;用法总结使用方法&#xff1a;方法一&#xff1a;添加菜单项&#xff1a;onCreateOptionsMenu&#xff08;Menu menu&#xff09;中添加menu.add(Menu.NONE,Men…

VUE保存页面的数据,VUE页面显示就执行某个函数,VUE页面隐藏就执行某个函数

用 VUE 默认的 keep-alive 组件实现 保存页面的数据,页面显示就执行某个函数&#xff0c;页面隐藏就执行某个函数实现方式&#xff1a; 1.在路由内设置页面是否需要缓存&#xff1b; 示例代码&#xff1a;&#xff08;在需要的组件里面添加meta 对象&#xff0c;keepAlive属…

npm i和npm_让您的NPM套件包含Jest和Codecov☂️

npm i和npmby Carl-Johan Kihl卡尔约翰基尔(Carl-Johan Kihl) 让您的NPM套件包含Jest和Codecov☂️ (Get your NPM-package covered with Jest and Codecov ☂️) 介绍 (Introduction) Let’s talk about code coverage, and how you can do coverage reports in Jest and Cod…

分页传页数的方法

<!DOCTYPE html><html> <head> <meta charset"UTF-8"> <title></title> </head> <body> <div> <span id"num">1</span> <button id"prev">上一页</button> <…

VUE input唤起键盘 底部固定的标签被顶上去解决办法

通过输入框的失去焦点事件和点击事件&#xff0c;当出现键盘时把绝对定位的底部文字隐藏&#xff0c;失去焦点&#xff08;键盘隐藏的时候&#xff09;显示底部文字 解决代码 <input type"text" class"weui-input" click"input_click" blur…

unity中摄像机的控制---调整摄像机,不让他摔倒

摄像机大部分人都会控制&#xff0c;最明显的就是让他旋转&#xff0c;随着鼠标的左右上下移动而旋转&#xff0c;但是总是会遇到一个问题&#xff0c;就是转着转着就仿佛他自己摔倒了似的&#xff0c;其实就是它本身绕着Z轴旋转了 这样就不是我们想要的结果了 要想解决也简单&…

java正则表达式课程_通过此免费课程学习正则表达式

java正则表达式课程by Beau Carnes通过博卡恩斯 通过此免费课程学习正则表达式 (Learn Regular Expressions with this free course) “Some people, when confronted with a problem, think ‘I know, I’ll use regular expressions.’ Now they have two problems.” -Jami…

Codeforces Round #370 (Div. 2)

A - Memory and Crow 这题我没看题意&#xff0c;看了样例猜了一下就AC了&#xff0c;题目好像还挺复杂的。 #include<bits/stdc.h> using namespace std; int a[100005]; int main() {int n;cin>>n;for(int i1;i<n;i) scanf("%d",&a[i]);for(int…

pat1004. Counting Leaves (30)

1004. Counting Leaves (30) 时间限制400 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, YueA family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Each input file contains…

css 引用字体

最近遇到个问题&#xff0c;页面使用的字体要用PingFangSC字体&#xff0c;引入方法如下&#xff1a; 简单介绍下PingFangSC字体&#xff1a; &#xff08;1&#xff09;苹方-简 常规体 font-family: PingFangSC-Regular, sans-serif; &#xff08;2&#xff09;苹方…

系统技术方案 系统构架_构架系统时应注意的事项

系统技术方案 系统构架by Ayelet Sachto通过Ayelet Sachto 架构系统时要记住的6件事 (6 Things to keep in mind when architecting a system) Architecture may sound like a “scary ” or overwhelming subject, but actually, applying logic and approaching the problem…

[LeetCode] Add Digits

Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. For example: Given num 38, the process is like: 3 8 11, 1 1 2. Since 2 has only one digit, return it. 分析一&#xff1a;最简单的循环方法 class Solutio…

vue 点击事件执行多次

把 click 改成 click.once 就可以了 示例代码 click.once"down" 这样有一个弊端&#xff0c;就是事件只执行一次就不再执行了&#xff0c; 另一种方式&#xff0c;做一个定时器 //默认设置dddown为 true if(that.dddown){that.dddown falsesetTimeout(function(…

如何以及为什么使用Android Visibility Listeners

The Android UI is built up from Views, and in a regular application, there are usually several of them. To find out which View the user is currently looking at, you need to install Visibility Listeners.Android UI是从Views构建的&#xff0c;在常规应用程序中&…

在vue中使用Element-UI

Element-UI是一套基于Vue2.0的UI组件库&#xff0c;http://element.eleme.io/#/zh-CN/component/carousel 首先npm install element-ui --save 然后在main.js中引入&#xff1a; import Vue from vue import ElementUI from element-ui import element-ui/lib/theme-default/in…

Flex布局教程(来源:阮一峰)

网页布局&#xff08;layout&#xff09;是 CSS 的一个重点应用。Flex 布局将成为未来布局的首选方案。本文介绍它的语法&#xff0c;下一篇文章给出常见布局的 Flex 写法。网友 JailBreak 为本文的所有示例制作了 Demo&#xff0c;也可以参考。 以下内容主要参考了下面两篇文…

ibatis的there is no statement named xxx in this SqlMap

报错情况如下&#xff1a;com.ibatis.sqlmap.client.SqlMapException: There is no statement named Control.insert-control in this SqlMap. at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.getMappedStatement(SqlMapExecutorDelegate.java:231)at com.ibatis.sq…

javascript案例_如何在JavaScript中使用增强现实-一个案例研究

javascript案例by Apurav Chauhan通过Apurav Chauhan 如何在JavaScript中使用增强现实-一个案例研究 (How to use Augmented Reality with JavaScript — a case study) In this experiment, I talk about how Augmented Reality with JS can be used to make learning more f…

久未更 ~ 一之 —— 关于ToolBar

很久没更博客了&#xff0c;索性开一个久未更 系列 > > > > > 久未更 系列一&#xff1a;关于ToolBar的使用(后续补充) 1 //让 ToolBar 单独使用深色主题 使得 toolbar 中元素 变为淡色 2 android:theme"style/ThemeOverlay.AppCompat.Dark.ActionBar"…

SQLServer怎样把本地数据导入到远程服务器上(转载)

平常用到mssql时间比较少&#xff0c;总是过一段时间就忘记应该怎么操作了。当要做mssq把本地数据导入到远程服务器的时候&#xff0c;就去网上搜索很久都没有图解的&#xff0c;所以今天自己收集一下免得下次又到处去找。希望对自己&#xff0c;同时对其它需要的人都有一定的帮…

input 默认样式的修改

/* 修改input选中的默认边框样式 */ outline: none; /* 修改input的选中时的光标颜色 */ caret-color:red; /* 修改input的选中时的默认边框 */ border: none; /* 修改input的提示文字的默认样式 */ input::-webkit-input-placeholder{color:#d0d0d0;}

巨石加密_点餐:如何吃一个可怕的巨石

巨石加密by Alan Ridlehoover通过艾伦里德尔霍弗 点餐&#xff1a;如何吃一个可怕的巨石 (Ordering Take Out: How to Eat a Scary Monolith) Martin Fowler said:马丁福勒(Martin Fowler) 说 &#xff1a; Almost all the successful microservice stories have started wit…

Halcon学习之六:获取Image图像中Region区域的特征参数

area_center_gray ( Regions, Image : : : Area, Row, Column ) 计算Image图像中Region区域的面积Area和重心&#xff08;Row&#xff0c;Column&#xff09;。 cooc_feature_image ( Regions, Image : : LdGray, Direction : Energy,Correlation, Homogeneity, Contrast ) …

dos下命令行执行程序时候注意程序所使用文件的路径问题

dos下命令行执行程序时候&#xff0c;最好是用cd命令先切换到程序所在目录下&#xff0c;这样就不会出现文件找不到的问题&#xff0c;如果由于特殊原因&#xff0c;不使用cd命令&#xff0c;而只使用路径命令时候程序中访问的资源也只能是改成绝对路径了&#xff0c;这样对有源…

Vant 使用之Toast Vant安装和使用

Vant 是一个VUE 的移动端组件库&#xff0c;里面有很多好用的组件。 第一步&#xff0c;安装和配置 Vant npm i vant -S npm i babel-plugin-import -D 安装完成之后&#xff0c;在项目 .babelrc 文件修改配置 plugins "plugins": [["import", {"…

15-5重构_重构-糟糕,我一直在向后做。

15-5重构by Justin Fuller贾斯汀富勒(Justin Fuller) 重构-糟糕&#xff0c;我一直在向后做。 (Refactoring — oops, I’ve been doing it backwards.) Welcome to my intervention. I’m a refactoring addict and I’m not afraid to admit it, but there’s only one prob…

JPush 使用教程

JPush 使用教程 自己使用的一些经验&#xff0c;为了方便直接从这里复制过去就行。 就当做个笔记&#xff0c;防止长时间忘记之后&#xff0c;还需要去官网看文档。 主要思路&#xff1a; sdk文件 三方依赖系统库 头文件 添加代理 初始化代码 1.版本信息 JPush : 2.2.0 Xco…

浏览器常见兼容性问题汇总

1、随便写几个标签&#xff0c;不加样式控制的情况下&#xff0c;各自的margin 和padding差异较大&#xff0c;解决方案是&#xff1a;*{margin:0;padding:0;} 2、块属性标签float后&#xff0c;又有横行的margin情况下&#xff0c;在IE6显示margin比设置的大&#xff0c;常出现…

VUE 动态绑定class

第一种&#xff1a;通过一个布尔值判断样式类是否生效 //isActive 是在data里面布尔值&#xff0c; rotateRight 是 class 样式类 //isActive 为true时样式类 rotateRight 生效 <div :class"{rotateRight:isActive}">abs</div> 第二种&#xff1a;通…

低声教育_我内心低声说:“成为建设者”

低声教育by Rebecca Radding由丽贝卡拉丁(Rebecca Radding) 我内心低声说&#xff1a;“成为建设者” (Something within me whispered: “Be the builder”) 加沙代码学院前任主持人Yasmin Hillis(自称嬉皮士)是一个内心的嬉皮士&#xff0c;她谈到了弗吉尼亚伍尔夫如何激发她…