如何从两个List中筛选出相同的值
问题现有社保卡和身份证若干,想要匹配筛选出一一对应的社保卡和身份证。转换为List<社保卡> socialList,和List idList,从二者中找出匹配的社保卡。 模型创建社保卡类 1234567891011121314151617181920212223242526272829303132333435/** * @author Ryan Miao */class SocialSecurity{ private Integer id;//社保号码 private Integer idCard;//身份证号码 private String somethingElse; public SocialSecurity(Integer id, Integer idCard, String somethingElse) { this.id = id; this.idCard = idCard; this.somethingElse = somethingElse; } ...
String的内存模型,为什么String被设计成不可变的
String是Java中最常用的类,是不可变的(Immutable), 那么String是如何实现Immutable呢,String为什么要设计成不可变呢? 前言关于String,收集一波基础,来源标明最后,不确定是否权威, 希望有问题可以得到纠正。 0. String的内存模型 Java8以及以后的字符串新建时,直接在堆中生成对象,而字符创常量池位于Metaspace。必要的时候,会把堆中的指针存入Metaspace, 而不是复制。 Metaspace位于虚拟机以外的直接内存,因此大小和外部直接内存有关,但也可以通过指定参数设置-XX:MetaspaceSize=8m -XX:MaxMetaspaceSize=8m 0.1 一些真实测试,以及某些推测很难直接从百度出的中文资料中得到确切的答案,因为大多以讹传讹,未经验证。这里且做测试,先记住,因为很不情愿啃官方文档。 前期准备首先,要有字符串常量池的概念。然后知道String是怎么和常量池打交道的。这里的武器就是intern(),看一下javadoc: 1234567891011121314151617181920212223 ...
在dropwizard中使用feign,使用hystrix
前言用惯了spring全家桶之后,试试dropwizard的Hello World也别有一帆风味。为了增强对外访问API的能力,需要引入open feign。这里简单在dropwizard中使用feign。 1. 什么Dropwizard Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services. Dropwizard使成熟、稳定的java生态系统更加简单、轻量(light-weight), 让你更专注于业务逻辑。 Dropwizard 为配置(configuration)、统计(application metrics)、日志(logging)、operational tools提供了开箱即用的能力。让您和您的团队能够在最短的时间内开发出具有生产环境的质量的Web服务。 下面的简介来自REST微服务架构之Dropwizard DropWizard是由Yammer开发团队贡献的一个后台服务开发框架,其集成了Java生态系统中各个问题域中最 ...
Java中ArrayList remove会遇到的坑
前言平时最常用的莫过于ArrayList和HashMap了,面试的时候也是问答的常客。先不去管容量、负载因子什么的,就是简单的使用也会遇到坑。 Remove 元素经常遇到的一个场景是:遍历list, 然后找到合适条件的给删除掉,比如删除所有的偶数。 1234567891011121314151617@Testpublic void testRemove2(){ List<Integer> integers = new ArrayList<>(5); integers.add(1); integers.add(2); integers.add(2); integers.add(4); integers.add(5); for (int i = 0; i < integers.size(); i++) { if (integers.get(i)%2==0){ integers.remove(i); } } ...
照着官方文档学习react-基础
笨人学习法10000个小时策略来学习,因为笨。先照着官方文档敲一遍,写一遍。 准备先要准备环境。搭建一个基于webpack的react环境:Hello ReactJS. 一些要点我在想是否应该完整的记录照抄的过程呢。毕竟已经开始一段,前面的要不要补上?回头看以前写过的angularJS的博客,现在完全不会了,太久没用了。所以,还是记录基础以及关注的问题就好。 1.1 基本格式react的模板文件后缀结尾为.jsx。 react可以采用html标签拼接的方式定义一个元素。比如: 1const element = <h1>Hello, world</h1>; 假设页面有个div: 1<div id="root"></div> 那么,reactJS可以这样渲染页面: 12345const element = <h1>Hello, world</h1>;ReactDOM.render( element, document.getElementById('root')) ...
Hello ReactJS
前言React学习前先搭好环境,官网的例子看着比较分散。结合webpack就可以体验完整的es6开发流程了。 源码:https://github.com/Ryan-Miao/hello-react-js/releases/tag/0.1 1. 环境搭建涉及以下几个技术。但从hello world的角度说,目前先不用知道是干嘛的,先用来学习react,后面再去研究各个组件的功能。 Webpack - A module bundler Babel - A Javascript compiler ES6 - A relatively new Javasript standard Yarn - A package manager React - As expected 1.1 安装一些东西去官网下载NodeJS,安装。去官网下载yarn,然后安装。 1.2 开始搭建最终搭建的文件结构如下: 12345678910111213141516.|____.babelrc|____node_modules|____app| |____components| | |____App.jsx| |_ ...
命令行打印文件树列表: tree
Linux & Mac1.下载tree lib123456//macbrew install tree//centosyum install tree//ubuntuapt-get install tree 用法1234//显示所有文件tree//显示深度2层tree -L 2 2. 命令find组合1find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' > structure.txt 移除node_module1find . -print | grep -v "node" | sed -e 's;[^/]*/;|____;g;s;____|; |;g' > structure.txt 缺点: 不能打印深度选择,或者需要更高层次的语法编写。这里姑且先用着。够用了。 Windowswindows自带tree命令。默认只显示目录 12345678//只显示目录tree//显示文件tree /f//输出到文件tr ...
如何启动一个本地静态服务器
背景学习前端开发,想要调试静态页面以及js,发现直接本地打开会有跨域异常。因此,需要启动一个静态服务器,只负责当前目录的文件路由。 目前尝试了两种方式。一种是Nginx, 一种是NodeJS服务器。最终推荐NodeJS。 1. Nginx启动静态页面1.1. 安装下载安装Nginx,在Mac下安装如下: 1brew install nginx 1.2 配置Mac通过brew安装后的配置文件位于:/usr/local/etc/nginx. 修改端口和文件目录: 1234567891011121314server { listen 8070; server_name localhost; charset utf-8; #access_log logs/host.access.log main; location / { root /Users/ryan/workspace/learning/react; index index ...
js-cros
cors执行过程摘自自由的维基百科 子域名之间互相访问需要跨域结论放在开头: 服务端必须设置允许跨域 客户端带cookie需要设置withCredentials 无论服务端是否允许跨域,该request都会完整执行 options预请求需要设置返回空,不然requestMapping没有支持该方法则出错 环境搭建需求首先需要搭建两个环境。一个是提供API的server A,一个是需要跨域访问API的server B。 Server A提供了一个api。完整的请求request是: 1https://local.expediapartnercentral.com.lisqa7.sb.karmalab.net:8443/contentmain/getDepositsRoomAndRatePlanInfo.json?htid=759&_=1490855801818 Server B有个页面page: 1http://cros.expediapartnercentral.com.lisqa7.s ...
Java8学习(3)- Lambda 表达式
猪脚:以下内容参考《Java 8 in Action》 本次学习内容: Lambda 基本模式 环绕执行模式 函数式接口,类型推断 方法引用 Lambda 复合 代码: https://github.com/Ryan-Miao/someTest/blob/master/src/main/java/com/test/java8/c3/AppleSort.java 上一篇Java8学习(2)- 通过行为参数化传递代码–lambda代替策略模式1. 结构初始化一个比较器: 12345Comparator<Apple> byWeight = new Comparator<Apple>() { public int copare(Apple a1, Apple a2){ return a1.getWeight().compareTo(a2.getWeight() ); }} 使用Lambda表达式: 1Comparator<Apple> byWeight = (Apple ...