首页 > 编程语言 >java后端详解中

java后端详解中

时间:2024-08-14 16:05:19浏览次数:16  
标签:java 解中 端详 add 使用 new 方法 size

1.日期时间
yyyy表示当天所在的年
YYYY代表是week in which year,表示当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的YYYY就是下一年。
表示日期和时间的格式:new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss")
1) 表示月份是大写的 M;
2) 表示分钟则是小写的 m;
3) 24 小时制的是大写的 H;
4) 12 小时制的则是小写的 h。
获取当前毫秒数:System.currentTimeMillis();
不允许在程序任何地方中使用:
1)java.sql.Date。
2)java.sql.Time。
3)java.sql.Timestamp。
不要在程序中写死一年为 365 天,避免在公历闰年时出现日期转换错误或程序逻辑
错误。
// 获取今年的天数
int daysOfThisYear = LocalDate.now().lengthOfYear();
// 获取指定某年的天数
LocalDate.of(2011, 1, 1).lengthOfYear();
2.集合处理
1) 只要覆写 equals,就必须覆写 hashCode。
2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须覆写
这两种方法。
3) 如果自定义对象作为 Map 的键,那么必须覆写 hashCode 和 equals。
判断所有集合内部的元素是否为空,使用 isEmpty()方法.
Map<String, Object> map = new HashMap<>(16);
if(map.isEmpty()) {
System.out.println("no element in this map.");
}
在使用 java.util.stream.Collectors 类的 toMap()方法转为 Map 集合时,一定要使
用含有参数类型为 BinaryOperator,参数名为 mergeFunction 的方法,否则当出现相同 key
值时会抛出 IllegalStateException 异常。
List<Pair<String, Double>> pairArrayList = new ArrayList<>(3);
pairArrayList.add(new Pair<>("version", 12.10));
pairArrayList.add(new Pair<>("version", 12.19));
pairArrayList.add(new Pair<>("version", 6.28));
Map<String, Double> map = pairArrayList.stream().collect(
// 生成的 map 集合中只有一个键值对:{version=6.28}
Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v2));

在使用 java.util.stream.Collectors 类的 toMap()方法转为 Map 集合时,一定要注
意当 value 为 null 时会抛 NPE 异常。
在 java.util.HashMap 的 merge 方法里会进行如下的判断:
if (value == null || remappingFunction == null)
throw new NullPointerException()
使用集合转数组的方法,必须使用集合的 toArray(T[] array),传入的是类型完全一
致、长度为 0 的空数组。
1) 等于 0,动态创建与 size 相同的数组,性能最好。
2) 大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。
3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。
4) 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。
不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
List list = new ArrayList<>();
list.add("1");
list.add("2");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
** String item = iterator.next();**
** if (删除元素的条件) {**
** iterator.remove();**
** }**
}
3.控制语句
当 switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行 null
判断。
在 if/else/for/while/do 语句中必须使用大括号。
三目运算符 condition? 表达式 1 : 表达式 2 中,高度注意表达式 1 和 2 在类型对齐
时,可能抛出因自动拆箱导致的 NPE 异常。
反例:使用 if (!(x >= 628)) 来表达 x 小于 628。
4.注释规约
所有的类都必须添加创建者和创建日期。
方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使
用/* */注释,注意与代码对齐。
5.前后端规约
前后端交互的 API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响
应体。
1) 协议:生产环境必须使用 HTTPS。
2) 路径:每一个 API 需对应一个路径,表示 API 具体的请求地址:
a) 代表一种资源,只能为名词,推荐使用复数,不能为动词,请求方法已经表达动作意义。
b) URL 路径不能使用大写,单词如果需要分隔,统一使用下划线。
c) 路径禁止携带表示请求内容类型的后缀,比如".json",".xml",通过 accept 头表达即可。
3) 请求方法:对具体操作的定义,常见的请求方法如下:
a) GET:从服务器取出资源。
b) POST:在服务器新建一个资源。
c) PUT:在服务器更新资源。
d) DELETE:从服务器删除资源。
4) 请求内容:URL 带的参数必须无敏感信息或符合安全要求;body 里带参数时必须设置 Content-Type。
5) 响应体:响应体 body 可放置多种数据类型,由 Content-Type 头来确定。
前后端数据列表相关的接口返回,如果为空,则返回空数组[]或空集合{}。
在前后端交互的 JSON 格式数据中,所有的 key 必须为小写字母开始的
lowerCamelCase 风格,符合英文表达习惯,且表意完整。

6.其他
后台输送给页面的变量必须加$!{var}——中间的感叹号。

标签:java,解中,端详,add,使用,new,方法,size
From: https://www.cnblogs.com/zhishizongjie/p/18359197

相关文章

  • JAVA毕业设计|ssm高校宿舍管理系统的设计与开发jsp包含文档代码讲解
    收藏点赞不迷路 关注作者有好处文末获取源码一、系统展示二、万字文档展示 基于ssm高校宿舍管理系统的设计与开发jsp开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven 编号:ssm283一、系统展示二、万字文档展示第......
  • JAVA毕业设计|(免费)ssm实验室管理与排课系统包含文档代码讲解
     收藏点赞不迷路 关注作者有好处编号:ssm458ssm实验室管理与排课系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven文末获取源码(免费领源码)1.系统展示2.万字文档展示第5章系统详细设计最后对选题、开题、毕设开......
  • JAVA毕业设计|(免费)基于ssm的星巴克咖啡店管理系统包含文档代码讲解
     收藏点赞不迷路 关注作者有好处编号:ssm449基于ssm的星巴克咖啡店管理系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven文末获取源码(免费领源码)1.系统展示2.万字文档展示第5章系统详细设计5.1管理员角色功能设计......
  • JAVA毕业设计|(免费)基于SSM的蛋糕甜品店管理系统的设计与开发jsp包含文档代码讲解
    收藏点赞不迷路 关注作者有好处编号:ssm544基于SSM的蛋糕甜品店管理系统的设计与开发jsp开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven文末获取源码(免费|领源码)1.系统展示2.万字文档展示第5章系统详细设计5.1个人中......
  • JAVA毕业设计|(免费)ssm基于web的经典电影推荐网站的包含文档代码讲解
    收藏点赞不迷路 关注作者有好处编号:ssm504ssm基于web的经典电影推荐网站的开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven1.系统展示2.万字文档展示第5章系统详细设计这个环节需要使用前面的设计方案,包括对系统模块......
  • 毕业设计|ssm基于java web的商铺租赁管理系统的jsp|免费|代码讲解
    收藏点赞不迷路 关注作者有好处编号:ssm405ssm基于javaweb的商铺租赁管理系统的jsp开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis+Vue工具:IDEA/Ecilpse、Navicat、Maven文末获取源码(免费领源码)1.系统展示2.万字文档展示第5章系统详细设计这个环节需要使......
  • [Javascript] Create an Actor model in Javascript
    Referto:https://stately.ai/docs/actor-modelWhatdefinesan“actor”?​Actorsareindependent“live”objectsthatcancommunicatewitheachotherviaasynchronousmessagepassing.InXState,werefertothesemessagesas events.Anactorhasitsowni......
  • 040_java.util.concurrent.CountDownLatch
    简单介绍CountDownLatch的通常用法和Thread.join()有点类似,等待其它线程都完成后再执行主任务。允许一个或多个线程等待其它线程的操作执行完毕后再执行后续的操作。先看看怎么用:publicclassCountDownLatchTest{publicstaticvoidmain(String[]args)throwsIn......
  • 041_java.util.concurrent.CyclicBarrier
    简单介绍CyclicBarrier,回环栅栏,它会阻塞一组线程直到这些线程同时达到某个条件才继续执行。它与CountDownLatch很类似,但又不同,CountDownLatch需要调用countDown()方法触发事件,而CyclicBarrier不需要,它就像一个栅栏一样,当一组线程都到达了栅栏处才继续往下走。publicclass......
  • [1041] JavaScript Tutorial
    ref:https://www.w3schools.com/js/default.aspJSTutorialJSHOMEJSIntroductionJSWhereToJSOutputJSStatementsJSSyntaxJSCommentsJSVariablesJSLetJSConstJSOperatorsJSArithmeticJSAssignmentJSDataTypesJSFunctionsJSObjectsJSObj......