当前位置: 首页 > news >正文

网站建设必要性/搜索竞价托管

网站建设必要性,搜索竞价托管,wordpress如何汉化主题,建筑图纸本文适合对 Java 或 C 有一些了解的用户阅读,推荐阅读时间15分钟。导言写这个系列的原因?我曾经听过一种说法,如果不了解Liunx的网络通讯,就很难理解理解Java的IO;如果不知道Java的IO也很难理解之后的NIO,N…

本文适合对 Java 或 C 有一些了解的用户阅读,推荐阅读时间15分钟。

导言

写这个系列的原因?

我曾经听过一种说法,如果不了解Liunx的网络通讯,就很难理解理解Java的IO;如果不知道Java的IO也很难理解之后的NIO,Netty。(理解是建立在对底层的理解之上的)

一门语言的设计是一项工程,是需要向很多其他编程语言、操作系统学习,站在巨人的肩膀上进行设计的;好的设计,好的语法也不是一蹴而就的,需要对之前版本的优点和缺点进行评估,再进行新语法的设想。

所以,本系列想采用Java从设计之初一直发展到Java8相关的新特性来讲述语言为何如此设计,以及语言发展各个重大版本的变化这个角度进行解析如何编写好“风格”的代码。

注:Java已经发展了很多年,目前为止最新的LTS版本为Java11。由于Java8商用已经较为普及,所以采用此版本。

这一节,先从布尔,常量一些特性开始讲起。

一、布尔类型

布尔类型在语法上类似于语言内置的常量,所以也做一些简单的介绍。

在过去编写C语言的代码时,由于缺少布尔类型(C99加入了布尔类型!),默认任何 非零的值(不为null)假定为 true,把 零和 null假定为 false。

#include

intmain() {/*输出 if(null) is false*/

if (null)

print("if(null) is true");elseprint("if(null) is false");/*输出 if(0) is false*/

if (0)

print("if(0) is true");elseprint("if(0) is false");/*输出 if(1) is true*/

if (1)

print("if(1) is true");elseprint("if(1) is false");

}

这在当时没有问题,但这种写法可读性差,对程序员不太友好。

在这点上,C++往前走了一步,添加了布尔类型bool,但由于要兼容C语言,也可以同时使用C的语法(条件表达式接收int值),打印bool值真假实际为1和0。

#include

using namespacestd;intmain(){bool flag = true;if(flag)

cout<

cout<

flag= false;if(flag)

cout<

cout<

}/*输出

true

1

false

0*/

Java也沿袭下来,增加了boolean类型,但条件表达式不接受int值,在语法上int值和boolean彻底无关。

packagecom.xx;public classDemo {public static voidmain(String[] args) {boolean b1 = true;

System.out.println(b1);boolean b2 = false;

System.out.println(b2);

}

}/*输出

true

false*/

从C、C++一直到Java,可以看到语言设计者在一步步让程序编写者编出更直观的、人类可读的代码。

二、魔术数字(magic number)

编程初学者碰到一些特殊变量最开始可能会直接采用硬编码的方式编写。这种编码被人们称之为魔术数字(原因在于作者在若干月后,甚至自己也不知道这个数字是什么意义)

//100表示成功,其他值表示失败

if (status == 100) {//成功处理

}else{//失败处理

}

其中100就是一个典型的魔术数字

这种编码习惯有以下两个明显的缺点

1.数值的意义难以了解

2.数值涉及变动时,可能要改不只一处

后来的编程人员使用了常量来代替魔术数字。常量名力求见名知意(某人说,好的代码是自解释(self-explanatory)的)。

常量的加入给程序带来了这两个好处。

1.增加可读性。

2.方便修改。

//1.这样的常量通常用相同的前缀表示同一类型 USER_SEX,且定义位置在最开头//2.从C沿袭至今的全大写,下划线分隔

public static final int USER_SEX_MALE = 1;public static final int USER_SEX_FEMALE = 0;

但是,在越来越多的常量使用中,人们又发现了自定义的常量也有一些难以解决的问题

1.需编译后才能生效

2.存在类型转换的风险

p.s. 第二点正是和C++的布尔值bool有着同样的问题。

再后来,常量的编写方式越来越多,比如注解;

通过注解使用的常量值

//application.properties

# 默认使用dev的配置文件

spring.profiles.active=dev

//application-dev.properties

# foo在开发环境的默认次数

default.foo.numbers = 10

//application-test.properties

#foo在测试环境的默认次数

default.foo.numbers = 1000

//application-prod.properties

# foo在生产环境的默认次数

default.foo.numbers = 100

importorg.springframework.beans.factory.annotation.Value;

@Servicepublic classFooService {

@Value("${default.foo.numbers}")privateInteger fooNumbers;

}

使用注解的好处在于用户可以定义不同的application-xxx.properties等多个配置文件。每个文件可以定义同名不同值的常量, 在启动项目时通过启动参数 -Dspring.profiles.active=XXX 来选择使用的配置文件,实现改变配置时改变常量值。

比如 dev配置文件的default.foo.numbers设置为10, test配置文件值设置为1000,根据 启动项目调用 -Dspring.profiles.active=test 调用到的值就是1000。

Java设计之初并没有考虑枚举类型,而是沿用从C一直以来的传统使用全局int/string值表示常量。为了让用户更好地使用常量,从1.5之后引入了枚举类型

/*** 1.自动私有构造函数

* 2.强类型,不会因为类型转换带来问题

* 3.可以直接使用 == 比较,和String常量需要equals()对比,效率高

* 4.无需编译生效*/

public enumUserSex {

male,//男

female, //女

;//error//UserSex();

public staticUserSex get(String str) {for(UserSex t : UserSex.values()) {if(t.name().equals(str))returnt;

}return null;

}

}

目前为止博主的最佳实践

对于只有真假的值,在Java中推荐使用布尔类型表示,比如是否为会员(isVip: true, false)。

对于超过两种以上或今后可能会增加新的类型的推荐用枚举表示。比如会员类型(VipType: week, month, year),考虑之后可能会新加入quarter等时间。

对于不同服之间同一个常量值由于各种需要测试等原因不一致,可以在各个服的配置文件定义。

http://www.lbrq.cn/news/759709.html

相关文章:

  • 推广平台哪个好/北京网站优化专家
  • 免费公司网站建设/品牌广告文案
  • 企业网站要怎么做/营销型网站重要特点是
  • 有没有做盗版电影网站犯罪的/怎么注册自己的网址
  • 哪个网站可以做兼职讲师/google官方入口
  • WordPress的index/百度网站排名关键词整站优化
  • 人力资源公司网站模板/网站免费网站免费优化优化
  • 网站怎么做切换图片/软文网站模板
  • 南通网站建设空间/沧州网络推广公司
  • 电子商务网站建设可行性 分析/深圳全网推广公司
  • icp备案 网站名称/百度登录入口官网
  • 做网站优化的关键词怎么设置/2022黄页全国各行业
  • 做网站如何接单/开平网站设计
  • 做微商做什么网站比较好/推推蛙贴吧优化
  • 公安网站备案号查询/北京网站优化常识
  • 网站动态添加广告怎么做的/谷歌搜索引擎为什么国内用不了
  • 牛商网络/优化网站排名软件
  • 网站建设和程序开发哪个好/谷歌搜索引擎免费入口镜像
  • 网站开发方案论文/seo是什么味
  • 邢台做网站名列前茅/今日最新国内新闻
  • 餐饮公司网站建设的特点/百度收录域名
  • 团购做的比较好的网站/seo实战培训
  • 域名注册网站制作/南宁网站推广营销
  • 模板网站设计报价/小程序开发哪家好
  • 公司网站建设应注意什么/餐饮培训
  • 如何利用互联网进行宣传推广/杭州专业seo服务公司
  • 网站开发前景好吗/百度问答官网
  • 关于网站建设案例/十大管理培训课程
  • 制作外贸网站开发/百度在线客服
  • 凉山建设机械网站/网站怎么优化关键词排名
  • 第十八讲:哈希2
  • 《探秘浏览器Web Bluetooth API设备发现流程》
  • 【自动化测试】通过AI技术如何自动建设接口自动化用例(有关必回)
  • 数据结构:二叉树的表示方式(Representation of Binary Trees)
  • 电商架构测试体系:ZKmall开源商城筑牢高并发场景下的系统防线
  • 【每天一个知识点】生物的数字孪生