Linux上开发常见问题整理

1.java工程在linux上运行测试

 ①首先要有一个main方法作为主类,程序的入口,右键-->Run As-->javaapplication生成配置文件入口

 ②右键该工程-->Export-->Runnable JAR file-->选择上一步生成的配置文件作为该jar运行入口,确定即可

 ③运行java  -jar  jar名+后缀(ps –ef|grep job)

总结:Linux后台运行Jar方法

·        linux服务器上运行Jar文件时通常的方法是:

$ java -jar test.jar

·        这种方式特点是ssh窗口关闭时,程序中止运行.或者是运行时没法切出去执行其他任务,有没有办法让Jar在后台运行呢:

·        方法一:

$ nohup java -jar test.jar &

//nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

//当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中

//除非另外指定了输出文件。

·        方法二:

$ nohup java -jar test.jar >temp.txt &

//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建

·        jobs命令和 fg命令:

$ jobs

//那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。

//如果想将某个作业调回前台控制,只需要 fg + 编号即可。

$ fg 2

·        查看某端口占用的线程的pid

netstat -nlp |grep :8080

2.linux命令

 ①实时查看日志:tail –f 日志文件名称+后缀 (如:tail –f cat.out)

 ②查看某程序运行状况:ps –ef|grep 程序名 (如: ps –ef|grep redis)

3. linux虚拟机下安装jdk失败显示如下

./jdk-6u13-linux-i586.bin:./install.sfx.1956: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory Failed to extract the files.Please refer to the Troubleshooting section of the Installation Instructions onthe download p…
解答:Linux操作系统是64位的。软件包jdk-6u13-linux-i586.bin的名字中包含了i586,表示,他是32位的软件。将jdk改成64位的重新安装,错误解决。

4.日历类calendar

 // calendar实例设置小时为当前小时减一

calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY) - 1);

5. HBase正则匹配

// HBase正则匹配

RegexStringComparatorcomp = newRegexStringComparator("20171116\\d|$");

filters.addFilter(newSingleColumnValueFilter(Bytes.toBytes("info"), Bytes.toBytes("time"), CompareOp.EQUAL, comp ));

6.map排序

 ①单个值的map排序

 把每一个map放到list中,比较mapkeyvalue,冒泡时整体移动

 // 以时间冒泡排序

for (inti = 0; i < mapList.size() - 1; i++) {

    for (int j = 0; j < mapList.size() - i - 1; j++) {

        int a = Integer.valueOf(mapList.get(j).get("time").toString());

        int b = Integer.valueOf(mapList.get(j+1).get("time").toString());

        if(a > b){

            Map<String,String> temp = mapList.get(j+1);

            mapList.set((j + 1),mapList.get(j));

            mapList.set(j, temp);

        }

    }

}

 ②多个值的map按value大小排序

 publicclass MapSortUtil {

    /**

     * map值大小降序排列(float类型)

     * @param oriMap

     * @return

     */

    publicstatic Map<String,Float> sortMapByValue(Map<String, Float> oriMap) {

        if (oriMap == null || oriMap.isEmpty()) {

            returnnull;

        }

        Map<String, Float> sortedMap = newLinkedHashMap<String, Float>();

        List<Map.Entry<String, Float>>entryList = newArrayList<Map.Entry<String, Float>>(

                oriMap.entrySet());

        Collections.sort(entryList, new MapValueComparator());

   

        Iterator<Map.Entry<String,Float>> iter = entryList.iterator();

        Map.Entry<String, Float> tmpEntry = null;

        while (iter.hasNext()) {

            tmpEntry = iter.next();

            sortedMap.put(tmpEntry.getKey(),tmpEntry.getValue());

        }

        return sortedMap;

    }

}

 

publicclassMapValueComparator implements Comparator<Map.Entry<String, Float>> {

    @Override

    publicintcompare(java.util.Map.Entry<String, Float> o1,java.util.Map.Entry<String, Float> o2) {

        returno2.getValue().compareTo(o1.getValue()); //降序

    }

}

7.SVN更新/提交报错,信息显示xx文件被锁定

 解决方案:找到被锁定的文件/文件夹 右键-->term--> Refresh/Cleanup清除锁即可更新/提交

8.float类型计算结果保留两位小数

①方法一:(float) Math.round(a*100)/100  //afloat类型

②方法二:

BigDecimal bg = new BigDecimal(f);

double f1 = bg.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

③方法三:

float num= (float)2/3;  

DecimalFormat df = new DecimalFormat("0.00");//格式化小数   

String s = df.format(num);//返回的是String类型 

9.kafka客户端服务消费数据刷入流程

①进入kafka

cd kafka_2.10-0.10.0.0      (/home/hxxtsx/kafka_2.10-0.10.0.0)

②启动客户端

bin/kafka-console-producer.sh

③创建kafka消息和主题

--broker-listNM-304-SA5212M4-BIGDATA-659:9091 --topic systemlog --producer.configconfig/producer.properties

具体操作:

bin/kafka-console-producer.sh --broker-listNM-304-SA5212M4-BIGDATA-659:9091 --topic systemlog --producer.configconfig/producer.properties

④设置json格式消息

{"system":"scheduler","module":"listener","host":"192.168.1.1","comm":"hello! this isalert!","logTime":"20171123102333","logType":"system","flag":"Exception"}

10.Hbase shell命令,根据某个字段值查询

语法:scan '表名',{FILTER => “ColumnPrefixFilter('列名') AND  ValueFilter( = , 'substring:列的值')”}

示例:scan 'log:analysis_notice_state',{FILTER =>"ColumnPrefixFilter('workerID') AND ValueFilter ( = , 'substring:W111')"}

11.HBase java API过滤器问题,根据某个字段过滤时,出现多个为空的情况(有些记录没有这个列值默认不会过滤)

SingleColumnValueFilter:用一列的值决定这一行的数据是否被过滤。在它的具体对象上,可以调用setFilterIfMissing(true)或者setFilterIfMissing(false),默认的值是false,其作用是,对于咱们要使用作为条件的列,如果这一列本身就不存在,那么如果为true,这样的行将会被过滤掉,如果为false,这样的行会包含在结果集中。

1. SingleColumnValueFilter scvf = new SingleColumnValueFilter(  

2.         Bytes.toBytes("colfam1"),   

3.         Bytes.toBytes("qual2"),   

4.         CompareFilter.CompareOp.NOT_EQUAL,   

5.         new SubstringComparator("BOGUS"));  

6. scvf.setFilterIfMissing(false);  

7. scvf.setLatestVersionOnly(true); // OK 

12. 导入的包报错:The import java.util cannot be resolved

解决方案:右键项目----àbuildpath----à最下面那个configuration的选择libraries找到JRE(这个时候你会发现这个jre前面有!或者是红X)选中remove掉重新为该项目选择一个JRE选中项目,project----clean,也可能未添加JRE。

13.eclipse/myeclipse解决editor does not contain a main type的方法

检查发现原来的包全部变成文件夹格式,我是右击src--àbuildpath--àuseas source folder就行了,就变回包格式的了,记得运行之后重启

14. java中Double类型的运算精度丢失的问题

在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。特别在实际项目中,通过一个公式校验该值是否大于0,如果大于0我们会做一件事情,小于0我们又处理其他事情。 这样的情况通过double计算出来的结果去和0比较大小,尤其是有小数点的时候,经常会因为精度丢失而导致程序处理流程出错。

15.kafka客户端服务消费数据刷入流程

①进入kafka

cd kafka_2.10-0.10.0.0    (/home/hxxtsx/kafka_2.10-0.10.0.0)

②具体操作

bin/kafka-console-producer.sh --broker-listNM-304-SA5212M4-BIGDATA-659:9091 --topic systemlog --producer.configconfig/producer.properties

注:

 bin/kafka-console-producer.sh (启动客户端)

--broker-listNM-304-SA5212M4-BIGDATA-659:9091 --topic systemlog --producer.configconfig/producer.properties (创建kafka消息和主题)

③设置json格式消息

{"system":"scheduler","module":"listener","host":"192.168.1.1","comm":"hello! this isalert!","logTime":"20171123102333","logType":"system","flag":"Exception"}

16.java Timer定时每个整点触发

1.  public class OneHour {  

2.      private final static long JOB_INTERNAL = 1000 * 60 * 60;//隔一个小时运行一次,如果是测试,可以改小一点  

3.      public static void main(String[] args) {  

4.          Timer timer = new Timer();  

5.          Calendar currentTime = Calendar.getInstance();  

6.          currentTime.setTime(new Date());  

7.    

8.          int currentHour = currentTime.get(Calendar.HOUR);  

9.          currentTime.set(Calendar.HOUR, currentHour + 1);  

10.         currentTime.set(Calendar.MINUTE, 0);  

11.         currentTime.set(Calendar.SECOND, 0);  

12.         currentTime.set(Calendar.MILLISECOND, 0);  

13.           //下面几行是相隔时间短一点的测试代码  

14.         /* 

15.         currentTime.set(Calendar.HOUR, currentTime.get(Calendar.HOUR)); 

16.         currentTime.set(Calendar.MINUTE, currentTime.get(Calendar.MINUTE)); 

17.         currentTime.set(Calendar.SECOND, currentTime.get(Calendar.SECOND)); 

18.         currentTime.set(Calendar.MILLISECOND, currentTime.get(Calendar.MILLISECOND)); 

19.         */  

20.         Date NextHour = currentTime.getTime();  

21.         System.out.println(NextHour);  

22.         timer.scheduleAtFixedRate(new MyTask(), NextHour, JOB_INTERNAL);  

23.     }  

24. }

17.读取配置文件

System.getProperty("user.dir")获取项目目录,配置文件和项目放在同一目录下

allProperties.getProperty(“配置文件key”);获取配置参数

System.getProperty("file.separator");路径分隔符

KafkaConsumerconsumer = new KafkaConsumer<>(props); 通过配置文件创建kafka消费者

consumer.subscribe(Arrays.asList("topicName")); 消费者订阅主题

privatestatic  Properties allProperties = new Properties();

       publicstaticvoid main(String[] args) {

       try {

           InputStream in = new BufferedInputStream(newFileInputStream(System.getProperty("user.dir")+"/kafka_consumer_config.properties"));

           allProperties.load(in);

       } catch (Exception e) {

           logger.error("读取Kafka配置文件出错!" + e);

       }

}

//消费消息

while(true) {

       ConsumerRecords<String,String>records = consumer.poll(100);

       for (ConsumerRecordrecord: records) { // 消息内容record.value()

            Map map =(Map) JSON.parse(record.value().toString());

            System.out.println(i +"======"+map.toString());

              

            // 写入文件

            if(!TextUtil.isEmpty(msg)){

               System.out.println("=====Prepare to write to the log file !");

               writeFile(file, msg);

            }else{

              logger.error("日志消息为空,无法写入文件!");

           }

        }

}

/**

     * 写入文件方法

     * @param file

     * @param msg

     */

    publicstaticvoid writeFile(Filefile, String msg){

       BufferedWriter bw = null;

       // 文件不存在,创建文件

       if(!file.exists()){

           try {

              System.out.println("file:"+file.getPath());

              file.createNewFile();

           } catch (IOException e) {

              logger.error("文件" + file.getPath()+ "创建失败! " + e);

           }

       }

        try {

            // utf-8格式追加写

           bw = new BufferedWriter(new OutputStreamWriter(newFileOutputStream(file, true),"UTF-8"));

           bw.write(msg);

           bw.flush();

           bw.newLine(); //换行

           System.out.println("===== 日志消息 " + msg + " 写入文件成功! " + file.getPath());

        } catch (Exception e) {

            logger.error("日志消息 " + msg + " 写入文件失败!" + e);

        }finally{

            try {

               bw.close();

            } catch (IOException e){

               e.printStackTrace();

            }

        }

    }

18.eclipse修改maven的本地仓库位置

eclipse中安装maven2插件之后,maven默认的本地库的路径是在${user}/.m2/repository/下,也就是在c盘的C:\Users\admin.m2\repository位置下。但是我们一般是不想放在C盘下,想将其放在别的盘符下,这里以D:\IDE\personalEclipse\repository为例: 
1
、手动创建本地仓库的地址为,在对应路径D:\IDE\personalEclipse\下创建repository文件夹,然后将D:\IDE\personalEclipse\apache-maven-3.3.9\conf\setting.xml这个路径下的文件复制到D:\IDE\personalEclipse\repository该文件夹下。 
2
、从windows的环境变量中增加了:M2_REPO=D:/IDE/personalEclipse/repository,同时把这个变量增加到path变量中。 

3、修改D:\IDE\personalEclipse\apache-maven-3.3.9\conf\setting.xml文件,在localRepository标签中添加D:/IDE/personalEclipse/repository表示maven的本地库的路径

4、从eclipse->preferences->maven->installationsadd一个已经安装到d盘的maven: 

5、从eclipse->preferences->maven->installations下修改user setting 选项为:D:/IDE/personalEclipse/repository/settings.xml,接着修改global setting 
D:\IDE\personalEclipse\apache-maven-3.3.9\conf\setting.xml
,找到对应的文件路径即可 
并点击updatesettings,然后点击下面的reindex按钮更新索引。

6、点击配置窗口的apply按钮即可

7、配置修改后,eclise会自动更新索引,当完成后重启myeclipse,会发现M2_REPO变量的值变成了D:/IDE/personalEclipse/repository

注意:在新建一个maven工程时,有时会遇到,pom文件一切正常,某个类下报某包找不到的错误,但看build path时却发现该包已经添加到maven依赖里边(buildpath里),仔细查看buildpath发现该类是存在但是不完整,部分方法点进去有个红色X,这种原因通常是本地仓库配置有问题或者网络问题,导致jar包下载不完善,调整后重新build,问题解决。

19."yyyyMMddHHmmss"字符串转成"yyyy-MM-dd HH:mm:ss"字符串

/**

     *"yyyyMMddHHmmss"字符串转成"yyyy-MM-dd HH:mm:ss"字符串

     * @param str

     * @return

     */

    privatefinalstatic SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    privatefinalstatic SimpleDateFormat sdfTimes = new SimpleDateFormat("yyyyMMddHHmmss");

    publicstatic String strToDateStr(String str){

       Date date = null;

       String dateStr = null;

       try {

           if(!TextUtil.isEmpty(str)){

              date = sdfTimes.parse(str);

              dateStr = sdfTime.format(date);

           }

       } catch (ParseException e) {

           e.printStackTrace();

       }

       return dateStr;

    }

20.Xshell映射,不同网段/虚拟机映射到本地访问

①打开Xshell,属性à隧道(ssh里边)à添加

②在弹出的窗口填写要映射的机器IP及端口号,及映射到本地的IP及端口号,确认后连接即可通过映射的本地端口号访问目标机器

21.elasticsearch-head不能连接管理elasticsearch

命令行运行grunt server

grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

打开http://localhost:9100进入管理页面,填写好地址点连接,然后连接不上elasticsearch 浏览器错误详情提示不安全

Firefox Console已拦截跨源请求:同源策略禁止读取位于 http://localhost:9200/ 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

Chrome Console:XMLHttpRequest cannot load http://localhost:9200/. No'Access-Control-Allow-Origin' header is present on the requested resource.Origin 'http://localhost:9100' is therefore not allowed access.

因为端口不一样,所以浏览器自带的安全策略是不允许去请求不同源的资源。

修改Elasticsearch配置

elasticsearch.yml 添加下面配置,重启后即可生效

http.cors.enabled: true
http.cors.allow-credentials: true
http.cors.allow-methods: OPTIONS,HEAD,GET,POST,PUT,DELETE
http.cors.max-age: 0
http.cors.allow-origin: /http?:\/\/localhost(:[0-9]+)?/
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length

可以用 Nginx 做下反代, 然后加下Header。然后地址改为http://localhost:9201

server {
    listen   9201;
    location~ /* {
        add_header Access-Control-Allow-Origin *;
        proxy_pass http://127.0.0.1:9200;
    }
 }

之前也是碰到楼主上面的问题,跨域问题~ 修改elasticsearch elasticsearch.yml 文件后解决,版本都是5.x 版本~

http.host:192.168.x.x (elasticsearch ip 一般 elasticsearch head 是同一台上面~) http.cors.enabled: truehttp.cors.allow-origin: "*"

因为都是内网的IP所以还是http.cors.allow-origin:"*"简单暴力好用

火狐和谷歌不支持访问,换IE后连接成功!

22.Elasticsearch之head插件Browser为空

问题描述:es里有几个index,在概览下是可以看到的,但是在数据浏览页却什么都没有

 
解决方法:原来用的是火狐浏览器,换成chrome浏览器就好了

23.Eclipse修改注释颜色/设置注释模板

①修改注释颜色:window -->preferences --> java --> editor --> syntax coloring --> comments 中的前两个就是修改注释颜色的。点击右边的color修改颜色就行了。右侧还有Italy,Bold等字体样式,自己也可以选择。

②设置注释模板:window -->preferences --> java --> code style --> code Templates --> comments--> types --> edit

24. ES进行聚合操作时提示Fielddata is disabled on text fields by default ...

①遇到这个错误是因为你尝试对一个text类型的字段做排序,而text类型的字段是要分词的。一来词典很大,性能会很差;二来排序结果是词典里的词,而并非整个text的内容。出于这2点原因,ES5.x以后对于text类型默认禁用了fielddata,防止对text字段一些错误的操作(排序,聚合,script)而给heap造成很大的压力。

②ElasticSearch 5.x后对排序,聚合这些操作用单独的数据结构(fielddata)缓存到内存里了,需要单独开启,官方解释在此https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html

③简单来说就是在聚合前执行如下操作

PUT megacorp/_mapping/employee/

{

 "properties": {

   "interests": {

     "type":     "text",

     "fielddata": true

    }

  }

}

④附java API说明文档 https://www.elastic.co/guide/e ... .html

⑤字段.keyword

25. log4j报错ERROR StatusLogger No log4j2 configuration file found. Usingdefault configuration: logging only errors to the console.

26. 在使用eclipse构建maven项目时,突然出现错误提示:An error occurred while filtering resources,在项目中到处都找不到哪里有问题,最后在国外网站找到解决办法:

右键项目--maven--update project 

27. 详解maven的pom.xml用<exclusion>解决版本问题

    用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排除一些不需要同时下载的依赖jar 。

使用exclusion排除依赖

假设有这样一种依赖关系,A->B->C,这个时候由于某些原因,我们不需要对C的依赖,但是我们又必须要对B的依赖,这个时候该怎么办呢?针对这种情况,Maven给我们提供了一个exclusion功能,我们可以在添加A对B的依赖时申明不需要引进B对C的依赖。具体做法如下:

  1. <dependencies>  
  2.     <dependency>  
  3.      <groupId>groupB</groupId>  
  4.      <artifactId>artifactB</artifactId>  
  5.      <version>1.0</version>  
  6.      <exclusions>  
  7.         <exclusion>  
  8.             <groupId>groupC</groupId>  
  9.             <artifactId>artifactC</artifactId>  
  10.         </exclusion>  
  11.      </exclusions>  
  12.    </dependency>  
  13.        ...  
  14. </dependencies>  

28. ElasticSearch执行报错:Exception in thread "main" java.lang. UnsupportedClassVersionError:org/elasticsearch/common/transport/TransportAddress: Unsupported major.minor version 52.0

原因是因为JDK版本过低,ES仅支持JDK1.8及以上版本

29.Spring-@value用法详解

为了简化读取properties文件中的配置值,spring支持@value注解的方式来获取,这种方式大大简化了项目配置,提高业务中的灵活性。

一、两种使用方法

1@Value("#{configProperties['key']}")

2@Value("${key}")

二、配置

2.1 @Value("#{configProperties['key']}")使用

2.1.1配置文件:

30.tomcat启动初始化参数

31. spring中InitializingBean接口使用理解

InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。

测试程序如下:

ApplicationContext.xml配置文件如下:

Main主程序如下:

运行Main程序,打印如下结果:

这说明在spring初始化bean的时候,如果bean实现了InitializingBean接口,会自动调用afterPropertiesSet方法。

问题

实现InitializingBean接口与在配置文件中指定init-method有什么不同?

修改配置文件,加上init-method配置,修改如下:

在配置文件中加入init-method="testInit"

运行Main程序,打印如下结果:

由结果可看出,在spring初始化bean的时候,如果该bean是实现了InitializingBean接口,并且同时在配置文件中指定了init-method,系统则是先调用afterPropertiesSet方法,然后在调用init-method中指定的方法。

这方式在spring中是怎么实现的?

通过查看spring的加载bean的源码类(AbstractAutowireCapableBeanFactory)可看出其中奥妙

AbstractAutowireCapableBeanFactory类中的invokeInitMethods讲解的非常清楚,源码如下:

总结

1springbean提供了两种初始化bean的方式,实现InitializingBean接口,实现afterPropertiesSet方法,或者在配置文件中同过init-method指定,两种方式可以同时使用

2:实现InitializingBean接口是直接调用afterPropertiesSet方法,比通过反射调用init-method指定的方法效率相对来说要高点。但是init-method方式消除了对spring的依赖

3:如果调用afterPropertiesSet方法时出错,则不调用init-method指定的方法。

32. java获取文件大小的方法

目前Java获取文件大小的方法有两种:

1、通过filelength()方法获取;

2、通过流式方法获取;

通过流式方法又有两种,分别是旧的java.io.*FileInputStreamavailable()方法和新的java..nio.*中的FileChannel

下面依次介绍这几种方法:

一、通过length方法:

1、创建一个文件:

 

2、获取文件大小:

3、查看结果:可见,使用length方法获取的文件大小与windows中显示的大小一致!

二、通过file.io.*中的流式方法获取

1、创建一个文件

依旧使用上面的文件

2、使用available方法获取:

3、查看结果:通过这种方法获取的文件大小是2147483647,很明显,这是int类型所能表示的最大值2^31-1,究其原因是因为文件的大小超过了int所能表示的最大值!!!

file.length()方法返回的类型:

available()方法返回的类型:

三、通过file.nio.*中的FileChannel工具来获取文件大小:

1、创建一个文件

依旧使用相同的大文件:

2、使用FileChannel获取文件大小:

3、查看结果:

33.double转long类型

long count = new Double(8.9).longValue() // 结果为8

34. 启动eclipse时出现“Failed to load the JNI sharedlibrary jvm.dll”错误及解决

昨晚安装另一个版本的eclipse,启动时出现了“Failed to load the JNI sharedlibrary jvm.dll”错误;

1、刚开始以为是因为当时没有将旧版本删除干净,于是就找了原来的安装目录,并没有发现残留的配置文件以及启动文件什么的;

2、于是猜测,新安装的这个版本目录下没有jvm.dll这个文件,可是发现是存在的;

    路径1C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll(该路径下安装的是32位的Java jdk

    路径2C:\Program Files\Java\jre6\bin\client\jvm.dll(该路径下安装的是64位的Java jdk

3、后来网上查了一下,说是有可能是版本原因,于是用notepad++看了下eclipse的配置文件(位于eclipse目录下configuration文件夹中config.ini文件),发现新安装的eclipse32位的,而我所用的jdk64位的;(此为问题所在)

既然找到了问题,那就好办了,随即在自己的云盘里下了32位的jdk,并将环境变量中JAVA_HOME路径改为32jdk的路径;32位的jdk64位的jdk因为安装位置的不同,因此可以共存,需要用哪个,改一下JAVA_HOME路径就OK了。

35.读取配置文件的几中方式

正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径。在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例。

本地读取资源文件

java类中需要读取properties中的配置文件,可以采用文件(File方式进行读取:

1 File file = new File("src/main/resources/properties/basecom.properties");
2 InputStream in = new FileInputStream(file);

当在eclipse中运行(不部署到服务器上),可以读取到文件。

服务器(Tomcat)读取资源文件

方式一:采用流+Properties

当工程部署到Tomcat中时,按照上边方式,则会出现找不到该文件路径的异常。经搜索资料知道,Java工程打包部署到Tomcat中时,properties的路径变到顶层(classes下),这是由Maven工程结构决定的。由Maven构建的web工程,主代码放在src/main/java路径下,资源放在src/main/resources路径下,当构建为war包的时候,会将主代码和资源文件放置classes文件夹下:

并且,此时读取文件需要采用流(stream的方式读取,并通过JDKProperties类加载,可以方便的获取到配置文件中的信息,如下:

1 InputStream in = this.getClass().getResourceAsStream("/properties/basecom.properties");
2 Properties properties = new Properties();
3 properties.load(in);
4 properties.getProperty("property_name");

 其中properties前的斜杠,相对于调用类,共同的顶层路径。

方式二:采用Spring注解

如果工程中使用Spring,可以通过注解的方式获取配置信息,但需要将配置文件放到Spring配置文件中扫描后,才能将配置信息放入上下文。

1 <context:component-scan base-package="com.xxxx.service"/>
2 <context:property-placeholder location="classpath:properties/xxx.properties" ignore-unresolvable="true"/>

然后在程序中可以使用 @Value进行获取properties文件中的属性值,如下:

1 @Value("${xxxt.server}")
2 private static String serverUrl;

方式三:采用Spring配置

也可以在Spring配置文件中读取属性值,赋予类成员变量

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 5     http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
 6     
 7     <bean id=propertyConfigurer class=org.springframework.beans.factory.config.PropertyPlaceholderConfigurer>
 8         <property name="location" value="classpath:properties/xxx.properties"/>
 9     </bean>
10     
11     <bean id="service" class="com.xxxx.service.ServiceImpl">
12         <property name="serverUrl" value="${xxxt.server}">
13     </bean>
14 
15 </beans>

参考:

Resourcefrom src/main/resources not found after building with maven        

[Java] jar 文件中读取resources 目录下的文件

36.JAVA中request.getParameterMap()用法

根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。这是因为服务器为了实现一定的安全规范,所作的限制。比如WebLogicTomcatResinJBoss等服务器均实现了此规范。

   如果实在有必要在取得此值以后做修改的话,要新建一个map对象,将返回值复制到此新map对象中进行修改,用新的map对象代替使用之前的返回值。

37.split(" ") 和 split(" ",-1) 区别

1.如果字符串最后一位有值,则没有区别,

2.如果最后n位都是切割符,split(" ")不会继续切分,split(" ", -1)会继续切分

38.svn导入Maven项目报错:

原因是由于JDK1.8新特性Lambda表达式 project Facets引用的是1.7版本,选中项目右键 --> Build Path --> Configure Build Path --> Maven -->project Facets --> java修改成1.8点击应用即可。

39.操作集群redis报错,(error) MOVED 1157710.142.119.3:6379

原因是没有启动集群模式(即缺少了那个"-c"):

启动命令:redis-cli -h10.142.119.9 -p 6379

修改为:redis-cli -c -h10.142.119.9 -p 6379

40.操作redis报错,WRONGTYPE Operation against a key holding

使用jedis插入数据时出现了一个问题:

代码大概是这样实现的:

看起来没有值类型不对的样子。后来发现原来是因为redis数据库中已经存在了相同的key, 而且key对应的值类型并不是HashMap;再调用hmset时,就会抛出此错误。

把原来的数据清掉,重新运行就没问题了。

41.Linux下grep显示前后几行信息

标准unix/linux下的grep通过下面參数控制上下文

grep-C 5 foo file 显示file文件里匹配foo字串那行以及上下5

grep-B 5 foo file 显示foo及前5

grep-A 5 foo file 显示foo及后5

42. /dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null

$command > /dev/null

/dev/null是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

如果希望屏蔽 stdout stderr,可以这样写:

$command > /dev/null 2>&1

注意:0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

43. java主线程等待所有子线程执行完毕在执行(常见面试题)

java主线程等待所有子线程执行完毕在执行,这个需求其实我们在工作中经常会用到,比如用户下单一个产品,后台会做一系列的处理,为了提高效率,每个处理都可以用一个线程来执行,所有处理完成了之后才会返回给用户下单成功,下面就说一下我能想到的方法,欢迎大家批评指正:

1.用sleep方法,让主线程睡眠一段时间,当然这个睡眠时间是主观的时间,是我们自己定的,这个方法不推荐,但是在这里还是写一下,毕竟是解决方法

2.使用Thread的join()等待所有的子线程执行完毕,主线程在执行,thread.join()把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。

下面结合这个问题我介绍一些并发包里非常有用的并发工具类

3.等待多线程完成的CountDownLatch

在这里说明一点,countDownLatch不可能重新初始化或者修改CountDownLatch对象内部计数器的值,一个线程调用countdown方法happen-before另外一个线程调用await方法

4.同步屏障CyclicBarrier

写到这里大家不免有些疑问,countDownLatch和cyclicBarrier有什么区别呢,他们的区别:countDownLatch只能使用一次,而CyclicBarrier方法可以使用reset()方法重置,所以CyclicBarrier方法可以能处理更为复杂的业务场景。

我曾经在网上看到一个关于countDownLatch和cyclicBarrier的形象比喻,就是在百米赛跑的比赛中若使用countDownLatch的话冲过终点线一个人就给评委发送一个人的成绩,10个人比赛发送10次,如果用CyclicBarrier,则只在最后一个人冲过终点线的时候发送所有人的数据,仅仅发送一次,这就是区别。

44. CountDownLatch使用场景及分析

JDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用。

  JDK1.5以前,使用并发操作,都是通过Thread,Runnable来操作多线程;但是在JDK1.5之后,提供了非常方便的线程池(ThreadExecutorPool),主要代码由大牛Doug Lea完成,其实是在jdk1.4时代,由于java语言内置对多线程编程的支持比较基础和有限,所以他写了这个,因为实在太过于优秀,所以被加入到jdk之中;

  这次主要对CountDownLatch进行系统的讲解

  使用场景:比如对于马拉松比赛,进行排名计算,参赛者的排名,肯定是跑完比赛之后,进行计算得出的,翻译成Java识别的预发,就是N个线程执行操作,主线程等到N个子线程执行完毕之后,在继续往下执行。

      代码示例

 1 public static void testCountDownLatch(){
3         int threadCount = 10;
5         final CountDownLatch latch = new CountDownLatch(threadCount);
7         for(int i=0; i< threadCount; i++){
9             new Thread(new Runnable() {
11                 @Override
12                 public void run() {
14                     System.out.println("线程" + Thread.currentThread().getId() + "开始出发");
16                     try {
17                         Thread.sleep(1000);
18                     } catch (InterruptedException e) {
19                         e.printStackTrace();
20                     }
22                     System.out.println("线程" + Thread.currentThread().getId() + "已到达终点");
24                     latch.countDown();
25                 }
26             }).start();
27         }
29         try {
30             latch.await();
31         } catch (InterruptedException e) {
32             e.printStackTrace();
33         }
35         System.out.println("10个线程已经执行完毕!开始计算排名");
36     }

  执行结果:

线程10开始出发
线程13开始出发
线程12开始出发
线程11开始出发
线程14开始出发
线程15开始出发
线程16开始出发
线程17开始出发
线程18开始出发
线程19开始出发
线程14已到达终点
线程15已到达终点
线程13已到达终点
线程12已到达终点
线程10已到达终点
线程11已到达终点
线程16已到达终点
线程17已到达终点
线程18已到达终点
线程19已到达终点
10个线程已经执行完毕!开始计算排名

源码分析:

1、CountDownLatch:Asynchronization aid that allows one or more threads to wait until a set ofoperations being performed in other threads completes.

    大致意思:也就是说主线程在等待所有其它的子线程完成后再往下执行

2、构造函数:CountDownLatch(int count)//初始化count数目的同步计数器,只有当同步计数器为0,主线程才会向下执行

主要方法:void await()//当前线程等待计数器为0 
boolean await(long timeout, TimeUnit unit)//与上面的方法不同,它加了一个时间限制。
              void countDown()//计数器减1
              long getCount()//获取计数器的值

3.它的内部有一个辅助的内部类:sync.

  它的实现如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

/**

     * Synchronization control For CountDownLatch.

     * Uses AQS state to represent count.

     */

    private static final class Sync extends AbstractQueuedSynchronizer {

        private static final long serialVersionUID = 4982264981922014374L;

 

        Sync(int count) {

            setState(count);

        }

 

        int getCount() {

            return getState();

        }

 

        protected int tryAcquireShared(int acquires) {

            return (getState() == 0) ? 1 : -1;

        }

 

        protected boolean tryReleaseShared(int releases) {

            // Decrement count; signal when transition to zero

            for (;;) {

                int c = getState();

                if (c == 0)

                    return false;

                int nextc = c-1;

                if (compareAndSetState(c, nextc))

                    return nextc == 0;

            }

        }

    }

4.await()方法的实现
 
sync.acquireSharedInterruptibly(1);
     -->if (tryAcquireShared(arg) < 0)//
调用3中的tryAcquireShared()方法
            doAcquireSharedInterruptibly(arg);//
加入到等待队列中
5.countDown()方法的实现
 
sync.releaseShared(1);
     --> if (tryReleaseShared(arg))//
调用3中的tryReleaseShared()方法
               doReleaseShared();//
解锁

 

 

 

 

 

 

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 【分享】微软产品全部序列号,盖茨会哭的~~~

    【分享】微软产品全部序列号,盖茨会哭的~~~ 有的我没有试,不知道是不是真的.....................WindowsXP可以无限次激活的号码:CXGDD-GP2B2-RKWWD-HG3HY-VDJ7J或者RK7J8-2PGYQ-P47VV-V6PMB-F6XPQ WindowsXP 2520 Pro 英文版--60天免激活序列号:RK7J8-2PGYQ-P47VV-V6PMB…...

    2024/5/10 10:06:42
  2. 博客园美化

    这个......首先我们要在文章的第一行加上一句: 发布于博客园,不可转载 那么现在正题开始了 其实这篇文章并不是教大家怎么美化博客的。如果您怀着真心美化博客技巧点进来的话,对不起(除非您在除了Garbageの博客园与GrabageのCSDN之外的网站上看见这篇文章)。 今天看到一Da…...

    2024/4/14 3:12:25
  3. Android进阶性能调优;不可思议的OOM

    前言;本文发现了一类OOM(OutOfMemoryError),这类OOM的特点是崩溃时java堆内存和设备物理内存都充足,下文将带你探索并解释这类OOM抛出的原因。文末有demo地址。关键词:OutOfMemoryError, OOM,pthread_create failede,Could not allocate JNI Env一、引子对于每一个移动开发…...

    2024/4/12 20:30:17
  4. nagios分组出图代码实现讲解[1]

    一、背景 鉴于zabbix和cacti的服务分组及图像呈现功能,公司领导以业务最大化稳定为目标导向,对运维部提出“监控系统按服务分组出图实时展现”的功能,运维部属于公司的技术保障支撑部门,面对合理的需求,只能是Yes。 二、需求 监控系统按服务分组出图实时展现 三、软…...

    2024/4/25 16:51:11
  5. VMware ACE 2客户端License的解决方法

    近两个月一直在测试VMware ACE 2 Server。在部署ACE2客户端的时候,总是提示输入序列号,从网上找,一直没有。 考虑到ACE 2,在测试的时候,就是使用的ACE Player,分析:如果客户端已经安装VMware Workstation 6,或者安装过VM6,在卸载的时候,保留了VM6的注册信息,则在部署…...

    2024/4/20 11:32:06
  6. Hexo-next主题美化

    Hexo优点 个人认为Hexo博客搭建较为简单,适合零基础人群,且因其为静态部署,无需云服务器,可挂载到GitHub上,实现站长之梦。 配置 这里不详细介绍了,想搭建的小伙伴可查看这篇文章 使用Hexo搭建博客–环境配置 美化 关于Next主题的美化教程众多,这里不一一介绍,我会再下…...

    2024/5/5 15:07:34
  7. YARN详解

    1. YARN架构1.1 简介1.1.1 架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。YARN总体上仍然是Master/Slave结构,在整个资源管理框架中,ResourceManager为Master,NodeManager为Slave,ResourceManager负责对各个NodeManager上的资…...

    2024/5/5 14:15:33
  8. 使用 Kotlin 编写你的第一个 Firefox WebExtension 扩展

    Kotlin 是我最喜爱的编程语言。我们已经知道 Kotlin 编译成 Java 字节码可以快速被安卓和服务端采用。事实上,Kotlin 还支持编译成 JavaScript,因此该语言也开始在 Web 生态系统中受到关注。 尽管已经发布了许多 Kotlin 编写的 Web 应用程序,但至今人们都忽略了 Kotlin 还可…...

    2024/4/12 20:30:17
  9. hexo之next主题个性化配置详细教程

    hexo之next主题个性化配置详细教程1.在右上角或者左上角实现fork me on github实现的效果图具体实现方法点击传送门>> 挑选自己喜欢的样式,并复制代码。 例如,我是复制如下代码:然后粘贴刚才复制的代码到 themes/next/layout/_layout.swig 文件中<div class="…...

    2024/5/5 9:05:47
  10. Linux网络应用问答(转)

    Linux网络应用问答(转)  作者:阿呆  来源:赛迪网-开放系统世界  问:如何在Linux下手动添加默认网关?  答:以root用户为例,执行下面的命令:  # route add default gw xxx.xxx.xxx.xxx(网关的IP)  如果用户想更改网关,编辑/etc/sysconfig/network-scripts…...

    2024/5/5 8:49:30
  11. iOS开源项目周报0112

    由OpenDigg 出品的iOS开源项目周报第五期来啦。我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开发方面的开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等。GDPerformanceView-Swift 状态栏上方显示手机状态TXScrollLabelView 在视图里显示广告或者重播FAQ…...

    2024/4/18 16:00:08
  12. VM虚拟机+Ubuntu环境配置+各种问题

    VM虚拟机+Ubuntu环境配置+各种问题1.VM虚拟机和Ubuntu下载2.Ubuntu在VMware下无法全屏显示3.VMware内Ubuntu如何联网4.Ubuntu Firefox无法打开Baidu方法5.Ubuntu安装Google Chrome6.VMware 实现主机与虚拟机间文件的复制与拖放7.Ubuntu安装Vim卸载Vim8.Ubuntu安装搜狗输入法 1.…...

    2024/5/1 8:24:36
  13. 我的博客园美化

    在加入博客园的前一个月,我都在进行前端html和css的学习 现发现博客园对用户开放高度的个人页面定制,让我很是惊喜 通过参考大佬们美化的主页,我逐渐了解了博客园的网页结构,于是也动了折腾的心思 我不喜欢花里胡哨,追求简单实用,希望我的美化主页CSS能对您有所帮助(随便…...

    2024/5/1 17:02:04
  14. 微软部份序列号

    WindowsXP可以无限次激活的号码:CXGDD-GP2B2-RKWWD-HG3HY-VDJ7J或者RK7J8-2PGYQ-P47VV-V6PMB-F6XPQ  WindowsXP 2520 Pro 英文版--60天免激活序列号:RK7J8-2PGYQ-P47VV-V6PMB-F6XPQ  Windows XP 2505 RC1--序列号:DTWB2-VX8WY-FG8R3-X696T-66Y46 Q3R8Y-MP9KD-3M6KB-3…...

    2024/5/1 16:44:07
  15. 直播APP源码系统家族功能开发介绍

    在直播APP源码系统功能开发时,我们可以通过创建家族或加入家族来获得家族的分成以此来增加自己的收益,接下来我们就讲解一下用户是如何通过家族的分成来获得收益的。1、首先我们通过传递的用户的$liveuid来判断用户是否加入了家族$users_family=DI()->notorm->users_fa…...

    2024/5/1 7:14:09
  16. 完整的DOS命令字典

    dos命令字典 net use ipipc$ " " /user:" " 建立ipc空链接 net use ipipc$ "密码" /user:"用户名" 建立ipc非空链接 net use h: ipc$ "密码" /user:"用户名" 直接登陆后映射对方c:到本地为h: net use h: ipc$ 登…...

    2024/5/1 18:26:10
  17. nagios通过微信告警(无限制告警条数)

    根据微信官方的规则,企业可以主动发消息给成员,每天可发的数量为:帐号上限数*30人次/天。默认账号上线是200人,也就是一天最多只能发200*30=6000条信息。随着使用微信告警的项目越来越多,有时候遇到网络问题6000根本不够用,其实微信还提供了另外一种告警方式:会话服务,…...

    2024/5/1 7:33:34
  18. CSDN账号注册问题

    在CSDN网站https://www.csdn.net/右下脚的QQ图标,点击联系客服弹出QQ对话框,直接问怎么注销账号。 客服需要你提供用户名、绑定邮箱、手机号、注册时间及地点来核验信息,通过后就会注销,其实也没注销账号,只是解绑了然后冻结了你的账号。...

    2024/5/1 17:02:32
  19. Ubuntu18.04美化MacOS(新更grub界面美化)

    写在前面的话:在美化过程中大多数资源来自境外网站,下载时速度特别慢,写这篇博客一是为了给读者看,也是为了自己保存资源并记录ubuntu18.04的使用,避免你们或是自己以后再花费大量时间去百度方法和下载。感谢:feipeng8848GNOME-LOOK.ORG各插件开发者声明:虽然资源我会放…...

    2024/5/1 11:03:05
  20. 【hexo】博客网站的基本设置

    经过前几篇博客的介绍,我们已经学会了如何使用hexo,如何进行静态网站的生成和部署hexo d -g,下面本节将会带领大家学习一下hexo博客的一些基础信息的设置和博客美化。1.设置网站的基本信息 在根目录下的_config.xml中修改。(注意区别于themes下主题的_config.xml文件)参数 描…...

    2024/5/1 5:34:06

最新文章

  1. k8s StatefulSet

    Statefulset 一个 Statefulset 创建的每个pod都有一个从零开始的顺序索引&#xff0c;这个会体现在 pod 的名称和主机名上&#xff0c;同样还会体现在 pod 对应的固定存储上。这些 pod 的名称是可预知的&#xff0c;它是由 Statefulset 的名称加该实例的顺序索引值组成的。不同…...

    2024/5/10 14:40:09
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. 在 Visual Studio Code (VSCode) 中隐藏以 . 开头的文件

    打开VSCode。 按下Ctrl ,快捷键打开设置。您也可以点击屏幕左下角的齿轮图标&#xff0c;然后选择“Settings”。 在设置搜索框中&#xff0c;键入files.exclude。 在找到的Files: Exclude项中&#xff0c;点击Add Pattern按钮来添加一个新的模式&#xff0c;或者直接在搜索…...

    2024/5/9 14:31:05
  4. 逆向案例十二——看准网企业信息json格式的信息

    网址&#xff1a;【全国公司排行|排名榜单|哪家好】-看准网 打开开发者工具——刷新——网络——XHR——下滑页面加载新的页面——找到数据包 发现参数加密&#xff0c;返回的数据也进行了加密 按关键字在下方搜索 kiv进入第一个js文件 ctrlf打开文件里面的搜索框继续搜kiv找到…...

    2024/5/10 0:14:27
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/10 12:36:12
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/10 10:22:18
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57