- Objective-C开发编程规范
github_38569411
iOS开发编码规范
一概要二代码格式2.1使用空格而不是制表符Tab2.2每一行的最大长度2.3函数的书写2.4函数调用2.5@public和@private标记符2.6协议(Protocols)2.7闭包(Blocks)2.8数据结构的语法糖三命名规范3.1基本原则3.2使用前缀3.3命名类和协议(Class&Protocol)3.4命名头文件(Headers)3.5命名方法(Methods)3.6存取方法(Acc
- iOS基础开发介绍
爱花的程序
ios
iOS是由苹果公司开发的移动操作系统,专为iPhone、iPad和iPodtouch等设备设计。iOS系统以其流畅的用户体验、丰富的功能和强大的安全性而著称,成为全球最受欢迎的移动操作系统之一。iOS基础开发则是构建在这些设备上的应用程序的过程,涉及多个方面,包括编程语言、开发环境、界面设计、数据存储和网络安全等。一、编程语言与开发环境iOS开发主要使用Objective-C和Swift两种编程语
- Flutter学习2 - Dart
KillerNoBlood
FlutterLearningflutter学习Dart
Dart语言特点:1、强类型语言,静态类型Dart2.0开始便是强类型语言,而且是静态类型的(可以类比Java,C#等)强类型语言的优点:所有类型的检查必须在编译的时候完成前端开发的js语言是弱类型的语言强类型的语言需要在定义的时候指定类型,如果不指定,编译器也可以在赋值的时候推断出变量类型2、面向对象的语言,OOP面向对象的语言有:Java、Kotlin、Objective-C、Swift、Py
- 懒人做开发系列:利用Object-C特性埋点
moonCoder
Objective-C是一门简单的语言,95%是C。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它的核心是消息分发。运行时会发消息给对象。一个对象的class保存了方法列表。那么这些消息是如何映射到方法的,这些方法又是如何被执行的呢?第一个问题的答案很简单。class的方法列表其实是一个字典,key为selectors,IMPs为val
- Swift5.1—构造过程
paperclouds
构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例使用前有个过程是必须的,它包括设置实例中每个存储属性的初始值和执行其他必须的设置或构造过程。你要通过定义构造器来实现构造过程,它就像用来创建特定类型新实例的特殊方法。与Objective-C中的构造器不同,Swift的构造器没有返回值。它们的主要任务是保证某种类型的新实例在第一次使用前完成正确的初始化。类的实例也可以通过实现析构器来执
- 2021-02-19 cc/gcc/g++/CC
Mona_Song
gcc全称是GunC语言编译器。原本只能处理C语言,gcc很快地扩展,现在的gcc可以说是GNU编译器集合(可编译C、C++、Objective-C、Ada、Fortran、Java)g++是C++编译器cc:Unix系统下的cc是一个古老的C编译器。Linux系统下cc一般是一个符号连接,该变量是make程序的内建变量,默认指向gcc。cc符号链接和变量存在的意义在于源码的移植性,便于Linux
- iOS开发工具Xcode安装与使用
黄粱一梦丶
iOS
简介Xcode是由苹果公司开发的,运行在操作系统MacOSX上的集成开发工具(IDE)。可以编写C、C++、Objective-C、swift代码,具有编辑代码、编译代码、调试代码、打包程序、可视化编程、性能分析、版本管理等开发过程中所有的功能。安装通过AppStore下载直接在Mac电脑上的AppStore中搜索Xcode关键字,即可在搜索列表中看到它了,点击即可下载:安装完成后会在launch
- clang前端
Back~~
LLVM学习
Clang可以处理C、C++和Objective-C源代码Clang简介Clang可能指三种不同的实体:前端(在Clang库中实现)编译驱动程序(在clang命令和Clang驱动程序库中实现)实际的编译器(在clang-ccl命令中实现)clang-ccl中的编译器不仅是由Clang库实现的,而且还广泛使用其他LLVM库来实现编译器的中间部分、后端以及集成的汇编器先分析clang编译器驱动程序的命
- Swift 指北
山河丘壑
Swiftswiftiphoneios
套话…Swift包含了C和Objective-C上所有基础数据类型,Int表示整型值;Double和Float表示浮点型值;Bool是布尔型值;String是文本型数据。Swift还提供了三个基本的集合类型,Array、Set和Dictionary除了我们熟悉的类型,Swift还增加了Objective-C中没有的高阶数据类型比如元组(Tuple)。元组可以让你创建或者传递一组数据,比如作为函数的
- 嵌入式调试工具之GDB
稚肩
嵌入式linuxlinux嵌入式GDB
在单片机开发中,我们可以通过集成式的IDE来进行调试,比如MDK、IAR等。GDB工具是GNU项目调试器,基于命令行使用。和其他的调试器一样,可使用GDB工具单步运行程序、单步执行、跳入/跳出函数、设置断点、查看变量等等,它是UNIX/LINUX操作系统下强大的程序调试工具。GDB支持多种语言,包括Ada、汇编、C/C++、D、Fortran、GO、Objective-C、OpenCL、Modul
- Effective Objective-C 学习(三)
糸师凛
objective-c学习iosxcode
理解引用计数Objective-C使用引用计数来管理内存:每个对象都有个可以递增或递减的计数器。如果想使某个对象继续存活,那就递增其引用计数:用完了之后,就递减其计数。计数变为0时,就可以把它销毁。在ARC中,所有与引用计数有关的方法都无法编译(由于ARC会在编译时自动插入内存管理代码,因此在编译时,所有与引用计数相关的方法都会被ARC替换为适当的代码)。引用计数的工作原理在引用计数架构下,对象有
- Effective Objective-C 学习(四)
糸师凛
objective-c学习ios
掌握GCD及操作队列的使用时机在执行后台任务时,GCD并不一定是最佳方式。还有一种技术叫做NSOperationQueue,它虽然与GCD不同,但是却与之相关,开发者可以把操作以NSOperation子类的形式放在队列中,而这些操作也能够并发执行。GCD是纯C的API,而NSOperationQueue是Objective-C的对象。这意味着使用GCD时,任务通过块(block)来表示,而块是一种
- iOS技术图谱之再谈Block
iOS大蝠
Block最早出现是在MacOSX10.6和iOS4中,作为对C语言的扩展,用来实现匿名函数的特性,在如今Objective-C开发的项目中Block随处可见。Block为Objective-C提供了强大的函数式编程能力,为日常开发带来了极大的便利。那么对于Block,你又了解多少?初识在AShortPracticalGuidetoBlocks文章中,Apple列举了几种在系统框架API中Bloc
- Objective-C的哪些特性利用了运行时机制
Adam_潜
https://www.jianshu.com/p/02d3d689d556methodswizzling:objective-c向一个对象发送消息时,具体会执行哪个方法,则是运行时系统根据selector查找对应的IMP得到的。objc_getAssociatedObjectid_object_get_associative_reference(idobject,void*key)猜测一下get
- 基础的OC
lfp901020
基础篇Objective-C的类可以多重继承么?可以采用多个协议么?不可以多重继承,可以采用多个协议.objc使用什么机制管理对象内存?MRC手动引用计数ARC自动引用计数,现在通常使用自动引用计数import跟#include又什么区别,@class呢,#import用来包含系统的头文件,#import””用来包含用户头文件。描述一下iOSSDK中如何实现MVC的开发模式MVC是模型、试图、控制
- 【IOS 知识点】Runtime 二
IOS_Faker
Runtime简介Runtime消息传递Runtime消息转发Runtime应用Runtime简介Runtime是一个用C、C++、汇编编写的运行时库,包含了很多C语言的API,封装了很多动态性相关的函数;Objective-C是一门动态运行时语言,允许很多操作推迟到程序运行时再进行。OC的动态性就是由Runtime来支撑和实现的,Rumtime就是它的核心;我们平时编写的OC代码,底层都是转换成
- C语言常见面试题:C语言中如何进行移动应用开发编程?
广寒舞雪
c语言开发语言
在C语言中进行移动应用开发需要结合特定的移动开发框架和工具。以下是使用C语言进行移动应用开发的基本步骤和注意事项:选择移动开发平台和框架:iOS开发:使用Objective-C或C++(通过Apple的官方工具如Xcode和iOSSDK)。Android开发:使用Java或Kotlin(通常通过AndroidStudio和AndroidSDK)。跨平台开发:使用像Cordova、ReactNati
- Objective-C runtime机制(4)——深入理解Category
无忘无往
在平日编程中或阅读第三方代码时,category可以说是无处不在。category也可以说是OC作为一门动态语言的一大特色。category为我们动态扩展类的功能提供了可能,或者我们也可以把一个庞大的类进行功能分解,按照category进行组织。关于category的使用无需多言,今天我们来深入了解一下,category是如何在runtime中实现的。category的数据结构category对应
- (五)接口设计
不会游的海鸥
第15条:用前缀避免命名冲突。Objective-C没有命名空间(namespace)机制,潜在同名冲突问题,解决办法是所有名称加上有意义第前缀。需要注意的是Apple宣称其保留使用所有“两字母前缀”(two-letterprefix)的权利,所以开发应尽量选用3字母或者以上的前缀。建议应用程序所有命名都适用前缀,包括类名、分类及其方法、协议、枚举、常量、宏等等。第16条:设计指定的初始化方法。为
- 【Effective Objective - C 2.0】——读书笔记(一)
温柔何曾赋我
c语言iosobjective-c
文章目录前言一、了解Objective-C语言的起源OC的起源运行期组件和内存管理二、在类的头文件中尽量少引入其他头文件尽量延后引入头文件或者单独开辟一个文件向前声明三、多用字面量语法,少用与之等价的方法四、多用类型常量,少用#define预处理指令五、用枚举表示状态,选项,状态码总结前言最近寒假学习了【EffectiveObjective-C2.0】这本书,特此总结一、了解Objective-C
- 【Effective Objective - C 2.0】——读书笔记(三)
温柔何曾赋我
c语言开发语言
文章目录十五、用前缀避免命名空间冲突十六、提供全能初始化方法十七、实现description方法十八、尽量使用不可变对象十九、使用清晰而协调的命名方式二十、为私有方法名加前缀二十一、理解Objective-C错误模型二十二、理解NSCopying协议十五、用前缀避免命名空间冲突OC语言中没有其他语言那种内置的命名空间机制,所以我们在对文件命名时要十分的注意,若是发生重名冲突,那么应用程序相应的链接
- direct access to Objective-C's isa is deprecated in favor of object_getClass()
我一不小心就
BuildSetting中搜索Directusageof'isa'将YES改为NO本人是CocoaPods引入的JSONKit框架,处理方法如下将pods的targets设置为JSONKit,然后去BuildSetting搜索Directusageof'isa'将YES改为NO
- Objective-C沙盒结构
OnlyFunny
导读:一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径timg.jpeg一、什么是沙盒机制iOS中的沙盒机制(SandBox)是一种安全体系,它规定了应用程序只能从为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。二、沙盒的特点每个应用程序都在自己的沙盒内不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容应用程序向外请求或接收数据都需要经过权限认证三、沙盒的结构组成大
- GCC 编译简明教程
SunnyZhou1024
前言GCC,全称TheGNUCompilerCollection,包含了C,C++,Objective-C,Fortran,Ada,Go等语言的编译器前端以及这些语言所依赖的一些库文件。虽然现在的IDE基本可以搞定很多编译的事情,但是很多时候,b比如我们看源码的时候、自己编写一些PythonC++扩展模块的时候等,使用IDE可能会比较繁琐,这时候就需要手动编译,需要看懂或者会编写编译脚本,这样,我
- 技术精英求职必备:iOS开发工程简历制作全指南
未来简历
ios求职招聘人工智能AIGCchatgpt
简历编写核心原则撰写针对iOS开发工程师职位的简历时,核心在于准确展现您在使用Swift和Objective-C进行iOS应用开发、界面设计以及性能优化方面的专业技能、项目经验和技术成就。简历应作为您展示iOS编程能力、对Apple的设计原则的理解和在移动应用领域解决技术挑战的能力的窗口。确保每一项经历和技能都紧密贴合iOS开发工程师的角色要求。明确的量化成果将有效吸引招聘者的注意,提升您的职业形
- class-dump的安装和使用
瞬csr
用来dump目标文件的class信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件。安装步骤1、下载地址:http://stevenygard.com/projects/class-dump/2、打开终端输入open/usr/local/bin3、把dmg文件中的class-du
- (二)属性
不会游的海鸥
第6条:属性概念。属性(property)是Objective-C的一项特性,用于封装对象中的数据。Objective-C对象通常会把数据存储为实例变量,通过存取方法访问。其中,获取方法(getter)用于读取变量值,设置方法(setter)用于写入变量值。Objective-C引入点语法(dotsyntax)访问对象的属性,点语法读取属性相当于调用获取方法,点语法赋值相当于调用设置方法。Obje
- 一般面试题
墨徕
一般面试题1.堆和栈的区别1.内存管理范围只有oc对象需要进行内存管理非oc对象类型比如基本数据类型不需要进行内存管理2.内存管理本质因为:Objective-C的对象在内存中是以堆的方式分配空间的,并且堆内存是由你释放的,就是releaseOC对象存放于堆里面(堆内存要程序员手动回收)非OC对象一般放在栈里面(栈内存会被系统自动回收)堆里面的内存是动态分配的,所以也就需要程序员手动的去添加内存、
- iOS objective-c实现底部导航栏
温正实
笔记iosobjective-c开发语言
一个有5个ViewControllerViewController.m文件////ViewController.m//haha////Createdby温国强on2022/1/9.//#import"ViewController.h"#import"ViewController2.h"#import"ViewController3.h"#import"ViewController4.h"#impo
- 52个有效方法(1) - 了解Objective-C语言的起源
SkyMing一C
Objective-C语言使用的是"消息结构"而非"函数调用"。"消息结构"和"函数调用"之间的区别"消息结构"的语言:运行时由运行环境决定所应执行的代码"函数调用"的语言:由编译器决定//Messaging(Objective-C)消息结构Object*obj=[Objectnew];[objperformWith:parameter1and:parameter2];//Functioncall
- PHP如何实现二维数组排序?
IT独行者
二维数组PHP排序
二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,(一维数组排序可以参考本站另一篇文章【PHP中数组排序函数详解汇总】)。二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数:
代码:
functionarray_sort($arr,$keys,$type='asc'){
$keysvalue= $new_arr
- 【Hadoop十七】HDFS HA配置
bit1129
hadoop
基于Zookeeper的HDFS HA配置主要涉及两个文件,core-site和hdfs-site.xml。
测试环境有三台
hadoop.master
hadoop.slave1
hadoop.slave2
hadoop.master包含的组件NameNode, JournalNode, Zookeeper,DFSZKFailoverController
- 由wsdl生成的java vo类不适合做普通java vo
darrenzhu
VOwsdlwebservicerpc
开发java webservice项目时,如果我们通过SOAP协议来输入输出,我们会利用工具从wsdl文件生成webservice的client端类,但是这里面生成的java data model类却不适合做为项目中的普通java vo类来使用,当然有一中情况例外,如果这个自动生成的类里面的properties都是基本数据类型,就没问题,但是如果有集合类,就不行。原因如下:
1)使用了集合如Li
- JAVA海量数据处理之二(BitMap)
周凡杨
java算法bitmapbitset数据
路漫漫其修远兮,吾将上下而求索。想要更快,就要深入挖掘 JAVA 基础的数据结构,从来分析出所编写的 JAVA 代码为什么把内存耗尽,思考有什么办法可以节省内存呢? 啊哈!算法。这里采用了 BitMap 思想。
首先来看一个实验:
指定 VM 参数大小: -Xms256m -Xmx540m
- java类型与数据库类型
g21121
java
很多时候我们用hibernate的时候往往并不是十分关心数据库类型和java类型的对应关心,因为大多数hbm文件是自动生成的,但有些时候诸如:数据库设计、没有生成工具、使用原始JDBC、使用mybatis(ibatIS)等等情况,就会手动的去对应数据库与java的数据类型关心,当然比较简单的数据类型即使配置错了也会很快发现问题,但有些数据类型却并不是十分常见,这就给程序员带来了很多麻烦。
&nb
- Linux命令
510888780
linux命令
系统信息
arch 显示机器的处理器架构(1)
uname -m 显示机器的处理器架构(2)
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示C
- java常用JVM参数
墙头上一根草
javajvm参数
-Xms:初始堆大小,默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制
-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制
-Xmn:新生代的内存空间大小,注意:此处的大小是(eden+ 2
- 我的spring学习笔记9-Spring使用工厂方法实例化Bean的注意点
aijuans
Spring 3
方法一:
<bean id="musicBox" class="onlyfun.caterpillar.factory.MusicBoxFactory"
factory-method="createMusicBoxStatic"></bean>
方法二:
- mysql查询性能优化之二
annan211
UNIONmysql查询优化索引优化
1 union的限制
有时mysql无法将限制条件从外层下推到内层,这使得原本能够限制部分返回结果的条件无法应用到内层
查询的优化上。
如果希望union的各个子句能够根据limit只取部分结果集,或者希望能够先排好序在
合并结果集的话,就需要在union的各个子句中分别使用这些子句。
例如 想将两个子查询结果联合起来,然后再取前20条记录,那么mys
- 数据的备份与恢复
百合不是茶
oraclesql数据恢复数据备份
数据的备份与恢复的方式有: 表,方案 ,数据库;
数据的备份:
导出到的常见命令;
参数 说明
USERID 确定执行导出实用程序的用户名和口令
BUFFER 确定导出数据时所使用的缓冲区大小,其大小用字节表示
FILE 指定导出的二进制文
- 线程组
bijian1013
java多线程threadjava多线程线程组
有些程序包含了相当数量的线程。这时,如果按照线程的功能将他们分成不同的类别将很有用。
线程组可以用来同时对一组线程进行操作。
创建线程组:ThreadGroup g = new ThreadGroup(groupName);
&nbs
- top命令找到占用CPU最高的java线程
bijian1013
javalinuxtop
上次分析系统中占用CPU高的问题,得到一些使用Java自身调试工具的经验,与大家分享。 (1)使用top命令找出占用cpu最高的JAVA进程PID:28174 (2)如下命令找出占用cpu最高的线程
top -Hp 28174 -d 1 -n 1
32694 root 20 0 3249m 2.0g 11m S 2 6.4 3:31.12 java
- 【持久化框架MyBatis3四】MyBatis3一对一关联查询
bit1129
Mybatis3
当两个实体具有1对1的对应关系时,可以使用One-To-One的进行映射关联查询
One-To-One示例数据
以学生表Student和地址信息表为例,每个学生都有都有1个唯一的地址(现实中,这种对应关系是不合适的,因为人和地址是多对一的关系),这里只是演示目的
学生表
CREATE TABLE STUDENTS
(
- C/C++图片或文件的读写
bitcarter
写图片
先看代码:
/*strTmpResult是文件或图片字符串
* filePath文件需要写入的地址或路径
*/
int writeFile(std::string &strTmpResult,std::string &filePath)
{
int i,len = strTmpResult.length();
unsigned cha
- nginx自定义指定加载配置
ronin47
进入 /usr/local/nginx/conf/include 目录,创建 nginx.node.conf 文件,在里面输入如下代码:
upstream nodejs {
server 127.0.0.1:3000;
#server 127.0.0.1:3001;
keepalive 64;
}
server {
liste
- java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
bylijinnan
double
public class Power {
/**
*Q71-数值的整数次方
*实现函数double Power(double base, int exponent),求base的exponent次方。不需要考虑溢出。
*/
private static boolean InvalidInput=false;
public static void main(
- Android四大组件的理解
Cb123456
android四大组件的理解
分享一下,今天在Android开发文档-开发者指南中看到的:
App components are the essential building blocks of an Android
- [宇宙与计算]涡旋场计算与拓扑分析
comsci
计算
怎么阐述我这个理论呢? 。。。。。。。。。
首先: 宇宙是一个非线性的拓扑结构与涡旋轨道时空的统一体。。。。
我们要在宇宙中寻找到一个适合人类居住的行星,时间非常重要,早一个刻度和晚一个刻度,这颗行星的
- 同一个Tomcat不同Web应用之间共享会话Session
cwqcwqmax9
session
实现两个WEB之间通过session 共享数据
查看tomcat 关于 HTTP Connector 中有个emptySessionPath 其解释如下:
If set to true, all paths for session cookies will be set to /. This can be useful for portlet specification impleme
- springmvc Spring3 MVC,ajax,乱码
dashuaifu
springjquerymvcAjax
springmvc Spring3 MVC @ResponseBody返回,jquery ajax调用中文乱码问题解决
Spring3.0 MVC @ResponseBody 的作用是把返回值直接写到HTTP response body里。具体实现AnnotationMethodHandlerAdapter类handleResponseBody方法,具体实
- 搭建WAMP环境
dcj3sjt126com
wamp
这里先解释一下WAMP是什么意思。W:windows,A:Apache,M:MYSQL,P:PHP。也就是说本文说明的是在windows系统下搭建以apache做服务器、MYSQL为数据库的PHP开发环境。
工欲善其事,必须先利其器。因为笔者的系统是WinXP,所以下文指的系统均为此系统。笔者所使用的Apache版本为apache_2.2.11-
- yii2 使用raw http request
dcj3sjt126com
http
Parses a raw HTTP request using yii\helpers\Json::decode()
To enable parsing for JSON requests you can configure yii\web\Request::$parsers using this class:
'request' =&g
- Quartz-1.8.6 理论部分
eksliang
quartz
转载请出自出处:http://eksliang.iteye.com/blog/2207691 一.概述
基于Quartz-1.8.6进行学习,因为Quartz2.0以后的API发生的非常大的变化,统一采用了build模式进行构建;
什么是quartz?
答:简单的说他是一个开源的java作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。并且还能和Sp
- 什么是POJO?
gupeng_ie
javaPOJO框架Hibernate
POJO--Plain Old Java Objects(简单的java对象)
POJO是一个简单的、正规Java对象,它不包含业务逻辑处理或持久化逻辑等,也不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。
POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hiber
- jQuery网站顶部定时折叠广告
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/4.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>网页顶部定时收起广告jQuery特效 - HoverTree<
- Spring boot内嵌的tomcat启动失败
kane_xie
spring boot
根据这篇guide创建了一个简单的spring boot应用,能运行且成功的访问。但移植到现有项目(基于hbase)中的时候,却报出以下错误:
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.Lif
- leetcode: sort list
michelle_0916
Algorithmlinked listsort
Sort a linked list in O(n log n) time using constant space complexity.
====analysis=======
mergeSort for singly-linked list
====code======= /**
* Definition for sin
- nginx的安装与配置,中途遇到问题的解决
qifeifei
nginx
我使用的是ubuntu13.04系统,在安装nginx的时候遇到如下几个问题,然后找思路解决的,nginx 的下载与安装
wget http://nginx.org/download/nginx-1.0.11.tar.gz
tar zxvf nginx-1.0.11.tar.gz
./configure
make
make install
安装的时候出现
- 用枚举来处理java自定义异常
tcrct
javaenumexception
在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。
1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage
public
- erlang supervisor分析
wudixiaotie
erlang
当我们给supervisor指定需要创建的子进程的时候,会指定M,F,A,如果是simple_one_for_one的策略的话,启动子进程的方式是supervisor:start_child(SupName, OtherArgs),这种方式可以根据调用者的需求传不同的参数给需要启动的子进程的方法。和最初的参数合并成一个数组,A ++ OtherArgs。那么这个时候就有个问题了,既然参数不一致,那