首页 文章 精选 留言 我的

精选列表

搜索[Rust编程],共10000篇文章
优秀的个人博客,低调大师

android网络编程——HttpGet、HttpPost比较

在Android SDK中提供了Apache HttpClient(org.apache.http.*)模块。在这个模块中涉及到两个重要的类:HttpGet和HttpPost,他们有共性也有不同。 HttpGet和HttpPost创建方式相同: 1、创建HttpGet(或HttpPost)对象,将要请求的URL通过构造方法传入HttpGet(或HttpPost)对象中; 2、使用DefaultHttpClient类的execute方法发送HTTP GET或HTTP POST 请求,并返回HttpResponse对象; 3、通过HttpResponse接口的getEntity方法返回响应信息。 HttpGet和HttpPost不同点,HttpPost在使用是需要传递参数 ,使用List<NameValuePair>添加参数。 List<NameValuePair> postParameters = new ArrayList<NameValuePair>(); postParameters.add(new BasicNameValuePair("username", "test")); postParameters.add(new BasicNameValuePair("password", "test1234")); /** * @author 张兴业 * 邮箱:xy-zhang#163.com * android开发进阶群:278401545 * */ 本文转自xyz_lmn51CTO博客,原文链接: http://blog.51cto.com/xyzlmn/1230790 ,如需转载请自行联系原作者

优秀的个人博客,低调大师

Cocoa编程学习笔记之MVC

Cocoa 使用了一种修改版本的MVC模式来处理GUI的显示。MVC模式(自1979年以来)已经出现很长时间了,它皆在分离显示用户界面所需的大量任务,并处理用户交互。正如名称所蕴含的,MVC具有三个主要部分,Model(模型)、View(视图)和Controller(控制器): 模型——模型是特定于领域的数据表现形式。比如说,我们正在创建一个任务列表应用程序。你可能会有一个Task对象的集合,书写为List。 你或许把这些数据保存在数据库、XML文件,或者甚至从Web Service中得到,不过MVC不那么关心它们是在何处/如何来持久保存的(乃至它们是什么)。相反,它特别专注于如何显示这些数据,并处理与用户交互的,好的模型类不包括任何有关用户界面的内容,可以在多个应用程序中使用。视图——视图代表了数据如何实际地显示出来。在我们这个假设的任务应用程序中,会在一个网页(以HTML的方式)中来显示这些任务,也会在一个WPF页面中(以XAML的方式)来显示,或者在一个iPhone应用程序中显示为UITableView 。如果用户点击某个任务,要删除之,那么视图通常会触发一个事件,或对Controller(控制器)进行一个回调,好的视图类是通用类,可以在多个应用中使用。控制器——控制器是模型和视图间的粘合剂,负责控制整个应用的流程。控制器的目的就是获取模型中的数据,告知视图来显示。控制器还侦听着视图的事件,在用户选中一个任务来删除的时候,控制着任务从模型中删除。通过分离显示数据、持久化数据和处理用户交互的职责,MVC模式有助于创建易于理解的代码。而且,它促进了视图和模型的解耦,以便模型能被重用。例如,在你的应用程序中,有两个界面,基于Web的和WPF的,那么你可以在两者中都使用同样的模型定义代码。 因而,在很多MVC框架中不管具体的工作方式如何,基本原理都大致如此的。然而,在Cocoa(及Cocoa Touch)中,还是或多或少有所不同,苹果用MVC来代表Views(视图)、View Controller(视图控制器)和Models(模型);但是在不同的控件中,它们却不是完全一致的,实现的方式也不太一样。 在Objective-C/Cocoa的世界里,我们建立的controller通常是指应用程序(Application)的委托(Delegate),或者可以简单称做app delegate。当你在Objective-C里面建立一个app delegate的时候,这个delegate可以做为你所有model和view的controller,或者你也可以为不同的model和view分别创建controller。 本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

优秀的个人博客,低调大师

Linux之shell编程函数使用

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。下面说说它的定义方法,以及调用需要注意那些事项。 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6675421.html 微信:intsmaze 函数定义 #!/bin/sh # func1.sh hello() ## 函数定义 { echo "Hello there today's date is `date +%Y-%m-%d`" # return 2 ###返回值其实是状态码,只能在[0-255]范围内 } hello #函数调用 echo $? #获取函数的return值,就是获取上一个命令的状态码,如果return 2没有注释,就是获取return 2 命令的状态吗。 echo "now going to the function hello intsmaze" 调用脚本 [hadoop@centos-Reall-131 shtest]$ sh func1.sh Hello there today's date is 2017-04-06 0 now going to the function hello intsmaze 注意: 1.必须在调用函数之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样先预编译。 2.函数返回值,只能通过$? 系统变量获得,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255) 函数参数 #!/bin/bash # fun1.sh funWithParam(){ echo "第一个参数为 $1 !" echo "第二个参数为 $2 !" echo "第十个参数为 $10 !" echo "第十个参数为 ${10} !" echo "第十一个参数为 ${11} !" echo "参数总数有 $# 个!" echo "作为一个字符串输出所有参数 $* !" } funWithParam 1 2 3 4 5 6 7 8 9 34 73 注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数。 [hadoop@centos-Reall-131 shtest]$ sh fun1.sh 第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 ! 函数返回值 #!/bin/bash # fun2.sh funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "输入的两个数字之和为 $? !"#这里上一个命令是 return $(($aNum+$anotherNum)) 调用脚本 [hadoop@centos-Reall-131 shtest]$ sh fun2.sh 这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 100 输入第二个数字: 200 两个数字分别为 100 和 200 ! 输入的两个数字之和为 44 !#这里上一个命令是 return 300 跨脚本调用函数 假如上述的脚本文件fun1.sh保存在此路径:/root/fun1.sh 则可在脚本fun_other.sh中调用脚本fun1.sh中的函数 #!/bin/bash # fun_other.sh . /root/fun1.sh # 注: . 和 / 之间有空格 # 或者 source /root/fun1.sh funWithParam 11 22 33 44 55 66 77 88 99 100 101 调用脚本 [hadoop@centos-Reall-131 shtest]$ sh fun_other.sh 第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 ! 第一个参数为 11 ! 第二个参数为 22 ! 第十个参数为 110 ! 第十个参数为 100 ! 第十一个参数为 101 ! 参数总数有 11 个! 作为一个字符串输出所有参数 11 22 33 44 55 66 77 88 99 100 101 ! 作者: intsmaze(刘洋) 出处: http://www.cnblogs.com/intsmaze/ 老铁,你的--->推荐,--->关注,--->评论--->是我继续写作的动力。 微信公众号号:Apache技术研究院 由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充! 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

优秀的个人博客,低调大师

C++异步编程最佳实践

Mapreduce问题 多个数据,进行同类型计算,最后汇总结果,怎样用C++解锁此类问题? 这个最简单了,单线程循环处理每份数据好了。这有何难,创建一块地方,针对每份数据创建个线程执行计算,将结果写入先前创建的数据的对应地方,等各线程结束,完活。 上面的说法都对,只是不够好。对于单线程处理,在这个多核时代,未免大马拉小车,有点浪费CPU。当问题规模变大,你准备花多长时间计算。对于多线程这个说法,从策略上来说,没有问题。但问题是你不得不手动启动线程,把结果放到共享内存里,通过thread.join()等待结束。这点操作难度,对于我大C++开发来说算啥,分分钟就搞定了。但问题又来了,现在你的老板问你要针对单份数据的处理函数,返回结果。呵呵,原来的单份数据处理函数,十有八九长成这样: RetType deal(Indata t,Retdata&

优秀的个人博客,低调大师

SpringBoot2.0响应式编程系列(二)-函数式编程和lambda表达式

函数接口 方法引用 package lambda; import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import java.util.function.IntUnaryOperator; class Dog { private String name = "哮天犬"; /** * 默认10斤狗粮 */ private int food = 10; public Dog() { } /** * 带参数的构造函数 * * @param name */ public Dog(String name) { this.name = name; } /** * 狗叫,静态方法 * * @param dog */ public static void bark(Dog dog) { System.out.println(dog + "叫了"); } /** * 吃狗粮 JDK * * 默认会把当前实例传入到非静态方法,参数名为this,位置是第一个; * * @param num * @return 还剩下多少斤 */ public int eat(int num) { System.out.println("吃了" + num + "斤狗粮"); this.food -= num; return this.food; } @Override public String toString() { return this.name; } } /** * @author shishusheng */ public class MethodRefrenceDemo { public static void main(String[] args) { Dog dog = new Dog(); dog.eat(3); // 方法引用 Consumer<String> consumer = System.out::println; consumer.accept("接受的数据"); // 静态方法的方法引用 Consumer<Dog> consumer2 = Dog::bark; consumer2.accept(dog); // 非静态方法,使用对象实例的方法引用 // Function<Integer, Integer> function = dog::eat; // UnaryOperator<Integer> function = dog::eat; IntUnaryOperator function = dog::eat; // dog置空,不影响下面的函数执行,因为java 参数是传值 dog = null; System.out.println("还剩下" + function.applyAsInt(2) + "斤"); // // // 使用类名来方法引用 // BiFunction<Dog, Integer, Integer> eatFunction = Dog::eat; // System.out.println("还剩下" + eatFunction.apply(dog, 2) + "斤"); // // // 构造函数的方法引用 // Supplier<Dog> supplier = Dog::new; // System.out.println("创建了新对象:" + supplier.get()); // // // 带参数的构造函数的方法引用 // Function<String, Dog> function2 = Dog::new; // System.out.println("创建了新对象:" + function2.apply("旺财")); // 测试java变量是传值还是穿引用 List<String> list = new ArrayList<>(); test(list); System.err.println(list); } private static void test(List<String> list) { list = null; } } 类型推断 image.png

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册