集合运算

Java多线程面试题整理

◇◆丶佛笑我妖孽 提交于 2020-01-15 09:38:38
1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。 2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。 3) 如何在Java中实现线程? 1)java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行, 2)由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。 3). 实现Callable接口通过FutureTask包装器来创建Thread线程 Callable接口(也只有一个方法)定义如下: public interface Callable<V> { V call() throws Exception; } public class SomeCallable<V>

17、ES6

做~自己de王妃 提交于 2020-01-15 06:13:36
一、声明变量 (一)let: 声明变量 1.没有声明提前的概念 2.不能在同一作用域重复声明同一个变量 3.块级作用域{} 1 let a = 20; 2 function show(){ 3 let a = 20; 4 } 5 console.log(a) 6 报错:Identifier 'a' has already 7 been declared 变量a已经被声明 案例:输出按钮索引值 1 //ES5方法 2 //相当于var i; 3 for(var i=0;i<btns.length;i++){ 4 btn[i].idx = i; 5 btns[i].onclick = function(){ 6 setTimeout(function(){ 7 console.log(this.idx); 8 }.bind(this),2000) 9 } 10 } 11 //ES6方法: 12 for(let i=0;i<btns.length;i++){ 13 //相当于let i; 14 btns[i].onclick = function(){ 15 setTimeout(function(){ 16 console.log(i); 17 },2000) 18 } 19 } 20 //考察知识点: 21 //1.变量的访问规则 22 //2.let的块级作用域{} (二

LINQ图解教程

☆樱花仙子☆ 提交于 2020-01-15 02:20:46
LINQ 什么是LINQ LINQ提供程序 匿名类型 方法语法和查询语法 查询变量 查询表达式的结构 from子句 join子句 什么是联结 查询主体中的from…let…where片段 from子句 let子句 where子句 orderby子句 select…group子句 查询中的匿名类型 group子句 查询延续:into子句 标准查询运算符 标准查询运算符的签名 查询表达式和标准查询运算符 将委托作为参数 LINQ预定义的委托类型 使用委托参数的示例 使用Lamba表达式参数的示例 LINQ to XML 标记语言 XML基础 XML类 创建、保存、加载和显式XML文档 创建XML树 使用XML树的值 增加节点以及操作XML 使用XML特性 节点的其他类型 XComment XDeclaration XProecssingInstruction 使用LINQ to XML的LINQ 查询 LINQ 什么是LINQ 在关系型数据库系统中,数据被组织放入规范化很好的表中,并且通过简单且强大的SQL语言来进行访问。因为数据在表中遵从某些严格的规则,所以SQL可以和它们很好的配合使用。 然而,在程序中却与数据库相反,保存在类对象或结构中的数据差异很大。因此,没有通用的查询语言来从数据结构中获取数据。从对象获取数据的方法一直都是作为程序的一部分而设计的

java基础

假如想象 提交于 2020-01-15 00:47:54
java基础笔记 第一章 入门须知 1.1 程序开发步骤 编写 编译: 将我们编写的java源文件翻译成jvm认识的class文件,此过程编译器会检查我们所写的程序是否有语法错误 运行 1.2 标识符 定义:自己定义的内容,如类名,方法名,变量名 命名规则: 可以包含:**字母,数字,$(美元符号),_(下划线)** 不能以数字开头 1.3 数据类型转换 自动转换:自动向更适应的类型转换(自动将类型提升) 强制转换:随你,但要看能不能转换成功 加减运算默认是在int类型下的,所以short类型也会发生自动转换 short s = 1; s = s + 1;//编译失败 public static void main(String[] args){ byte b1=1; byte b2=2; //对于常数,编译器是知道的,所以会自动得出结果3,从而确定没有越界而顺利赋值 byte b3=1 + 2; //对于变量,编译器不知道值是多少,会进行自动转换,从而报错,出现异常 byte b4=b1 + b2; System.out.println(b3); System.out.println(b4); } 1.4 运算符 && 短路与:左边是false,右边就不再运算 || 短路或:左边是true,右边就不再运算 ! 取反 1.5 方法 方法必须定义在一个类中的方法外

凸优化笔记——1.凸集

纵然是瞬间 提交于 2020-01-14 09:12:52
凸集 本章目录 凸集与仿射集 一些例子 保凸运算 广义不等式 分割超平面与支撑超平面 对偶锥与广义不等式 本章目录 凸集与仿射集 仿射集合 affine set 定义:给定两点 x 1 , x 2 ∈ R n , x 1 ≠ x 2 x_1,x_2 \in R^n, x_1 \neq x_2 x 1 ​ , x 2 ​ ∈ R n , x 1 ​  ​ = x 2 ​ ,所有满足 x = θ x 1 + ( 1 − θ ) x 2 , θ ∈ R x = \theta x_1 + (1-\theta)x_2, \theta \in R x = θ x 1 ​ + ( 1 − θ ) x 2 ​ , θ ∈ R 的点。 注意:仿射集包含过集合中任意两点的直线。 例子:线性方程组的解集是仿射集, C = { x ∣ A x = b } C=\{x | Ax = b\} C = { x ∣ A x = b } 。反之亦然,任何一个仿射集都可以表示为一组线性方程组的解。 凸集 convex set 定义:与仿射集类似,但要求 θ ∈ [ 0 , 1 ] \theta \in [0,1] θ ∈ [ 0 , 1 ] ,即任取集合中 x 1 , x 2 x_1,x_2 x 1 ​ , x 2 ​ ,两点之间的线段组成的集合。 例子: 凸组合与凸包 convex combination &

Freemarker 使用

点点圈 提交于 2020-01-13 19:37:56
以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:<#-- ... -->格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,FTL指令:FreeMarker指定,和HTML标记类似,名字前加#予以区分,不会输出 下面是一个FreeMarker模板的例子,包含了以上所说的4个部分 <html><br> <head><br> <title>Welcome!</title><br> </head><br> <body><br> <#-- 注释部分 --><br> <#-- 下面使用插值 --> <h1>Welcome ${user} !</h1><br> <p>We have these animals:<br> <u1><br> <#-- 使用FTL指令 --> <#list animals as being><br> <li>${being.name} for ${being.price} Euros<br> <#list><br> <u1><br> </body><br> </html> 1, FTL指令规则 在FreeMarker中,使用FTL标签来使用指令,FreeMarker有3种FTL标签

Java多线程面试问题和答案

北战南征 提交于 2020-01-13 16:38:46
1) 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对 运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支 持,它也是一个很好的卖点。 2) 线程和进程有什么区别? 线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。 3) 如何在Java中实现线程? 在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承 java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。 4) 用Runnable还是Thread? 这个问题是上题的后续,大家都知道我们可以通过继承Thread类或者调用Runnable接口来实现线程,问题是,那个方法更好呢?什么情况下使 用它?这个问题很容易回答,如果你知道Java不支持类的多重继承,但允许你调用多个接口。所以如果你要继承其他类

Redis在java中的使用

走远了吗. 提交于 2020-01-13 07:29:35
1.Redis Windows安装  下载链接: https://github.com/dmajkic/redis/downloads 根据自己的需要选择32位,64位的redis,然后存到一个指定的目录,比如:F:\Redis ① 打开cmd ,进入F:\Redis ② 执行redis-server.exe redis.conf ③ 另外重新开一个cmd,执行redis-cli.exe -h 127.0.0.1 -p 6379 ④ 测试:set mykey li get mykey 可以得到"li",说明服务已打开。 2.在java中的使用 使用Java操作Redis需要jedis-2.1.0.jar,下载地址: http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip 如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址: http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip package com.redis.test; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Set;

0109 redis数据库的配置与使用

痞子三分冷 提交于 2020-01-12 21:54:15
目录 昨日回顾 Redis 1. Redis简介 1.1 为什么要用 redis /为什么要用缓存 1.2 为什么要用 redis 而不用 map/guava 做缓存? 1.3 redis 和 memcached 的区别 2.Redis内存数据库 2.1 redis介绍 2.2 Redis操作 2.3 Redis数据类型 2.4 python使用redis 3.接口缓存 模式 轮播图接口缓存 4.celery异步服务框架 昨日回顾 1、接口编辑 1)设计数据库 2)分析业务逻辑 3)配置路由层 4)完成视图(简单逻辑,直接在视图中完成,复杂逻辑,交给序列化组件完成) 5)序列化组件(序列化与反序列化字段,是否要(重|自)定义字段,设置局部全局钩子,考虑是否重写create和update方法) 2、django缓存 from django.core.cache import cache (memcache|redis) cache.set(k, v, e) cache.get(k) 3、vue-cookies $cookies = vue-cookies $cookies.set(k, v, e) $cookies.get(k) $cookies.remove(k) -- 前台数据库:cookie、sessionStorage、localStorage 4、前后台交互 $axios(

集合 相关 深浅copy

徘徊边缘 提交于 2020-01-12 20:56:53
'' 集合:可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复。 {} ''' # set1 = set({1,2,3}) # set2 = {1,2,3,[2,3],{'name':'alex'}} # 错的 集合和字典是可变数据类型 # print(set1) # print(set2) # set1 = {'alex','wusir','ritian','egon','barry',} #增 #add # set1.add('女神') # print(set1) #update #迭代增加 # set1.update('abc') # print(set1) #删除 # set1.pop() # 随机删除 # print(set1.pop()) # 有返回值 # print(set1) # set1.remove('alex') # 按元素 # print(set1) #空字典{} 空集合set() # set1.clear() # print(set1) # set() # del set1 #删除集合 # print(set1) #查 # for i in set1: # print(i)# set1 = {1,2,3,4,5} # set2 = {4,5,6,7,8} # set3 = set1 & set2 #交集 # print(set3) # {4,