热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java狂神说基础3040课

1包机制一般利用公司域名倒置作为包名:com.kuangstudy.blog如果空的包不能展开。把项目列表中齿轮模样的按键里的Compactmiddlepackage取消勾选2IJ




1包机制

一般利用公司域名倒置作为包名:com.kuangstudy.blog

如果空的包不能展开。把项目列表中齿轮模样的按键里的 Compact middle package取消勾选


2IJ中,按住Ctrl键,鼠标点击类或方法,进入父类查看
3import必须在package下面
4*通配符,导入所有名下包
5百度搜索阿里巴巴开发手册,几个主义的点
  1. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。

    正例:ForceCode / UserDO / HtmlDTO / XmlService / TcpUdpDeal / TaPromotion

    反例:forcecode / UserDo / HTMLDto / XMLService / TCPUDPDeal / TAPromotion

  2. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格。

    正例: localValue / getHttpMessage() / inputUserId

  3. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

    正例:MAX_STOCK_COUNT / CACHE_EXPIRED_TIME

    反例:MAX_COUNT / EXPIRED_TIME

  4. 【强制】如果是大括号内为空,则简洁地写成{}即可,大括号中间无需换行和空格;如果是非 空代码块则:即大括号的首尾要扎根到起始或结束位置

    1) 左大括号前不换行。

    2) 左大括号后换行。

    3) 右大括号前换行。

    4) 右大括号后还有 else 等代码则不换行;表示终止的右大括号后必须换行。

  5. 【强制】采用 4 个空格缩进,禁止使用 Tab 字符。 说明:如果使用 Tab 缩进,必须设置 1 个 Tab 为 4 个空格。IDEA 设置 Tab 为 4 个空格时,请勿勾选 Use tab character;而在 Eclipse 中,必须勾选 insert spaces for tabs

    正例:

    public static void main(String[] args) {
    // 缩进 4 个空格
    String say = "hello";
    // 运算符的左右必须有一个空格
    int flag = 0;
    // 关键词 if 与括号之间必须有一个空格,括号内的 f 与左括号,0 与右括号不需要空格
    if (flag == 0) {
    System.out.println(say);
    }
    // 左大括号前加空格且不换行;左大括号后换行
    if (flag == 1) {
    System.out.println("world");
    // 右大括号前换行,右大括号后有 else,不用换行
    } else {
    System.out.println("ok");
    // 在右大括号后直接结束,则必须换行
    }
    }

  6. 【强制】注释的双斜线与注释内容之间有且仅有一个空格。

    正例:

    // 这是示例注释,请注意在双斜线之后有一个空格

    String commentString = new String()

  7. 【强制】浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals
    来判断。
    说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进
    制无法精确表示大部分的十进制小数,具体原理参考《码出高效》。
    反例:
    float a = 1.0F - 0.9F;
    float b = 0.9F - 0.8F;
    if (a == b) {
    // 预期进入此代码块,执行其它业务逻辑
    // 但事实上 a==b 的结果为 false
    }
    Float x = Float.valueOf(a);
    Float y = Float.valueOf(b);
    if (x.equals(y)) {
    // 预期进入此代码块,执行其它业务逻辑
    // 但事实上 equals 的结果为 false
    }
    正例:
    (1) 指定一个误差范围,两个浮点数的差值在此范围之内,则认为是相等的。
    float a = 1.0F - 0.9F;
    float b = 0.9F - 0.8F;
    float diff = 1e-6F;
    if (Math.abs(a - b) System.out.println("true");
    }
    (2) 使用 BigDecimal 来定义值,再进行浮点数的运算操作。
    BigDecimal a = new BigDecimal("1.0");
    BigDecimal b = new BigDecimal("0.9");
    BigDecimal c = new BigDecimal("0.8");
    BigDecimal x = a.subtract(b);
    BigDecimal y = b.subtract(c);
    if (x.compareTo(y) == 0) {
    System.out.println("true");
    }

  8. 【强制】如上所示 BigDecimal 的等值比较应使用 compareTo()方法,而不是 equals()方法。 说明:equals()方法会比较值和精度(1.0 与 1.00 返回结果为 false),而 compareTo()则会忽略精度。


6JavaDoc Indea导出

Tools->Generate JavaDoc 选择导出哪个类或项目、导出位置 Locale 一般填 zh_CN Other command line arguments一般填 -encoding UTF-8 -charset UTF-8 -link http://docs.Oracle.com/javase/8/docs/api


7Scanner

配合scanner.hasNext()或scanner.hasNextLine()检测是否还有输入内容。

最后要把.close()关闭,节约资源

养成良好习惯,凡是属于IO流的类如果不关闭会一直占用资源。

下面案例输入” Hello World!“ 分别用.next 与 .nextline

next不能得到带空格的字符串

next以检测到第一个有效字符之后的第一个空格结束,也就是输入“ Hello World!”会得到Hello,前后都没有空格

nextline以回车结束

import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
String str = scanner.next();
System.out.println("输入结果时 "+str);
}
scanner.close();
}
}
//输出为 Hello(前后无空格)

import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入结果时 "+str);
}
scanner.close();
}
}
输出 Hello World!(前面有若干个空格)

8数值比较可以用==,尽量 相减后 <小数值(比如0.001F)字符串比较用 .equal
9反编译查看java源码的方法

我们知道,java文件,通过编译器比如India,变成class文件,然后class文件即字节码文件,放入JVM中运行。

我们现在把class格式通过java格式看到

我们从资源管理器打开class文件,(java格式文件在工程文件中是,class格式文件在工程文件的同级目录,有个out文件夹,里面有class文件)从资源管理器中复制过去,然后可以看到源码。

package com.zhaoxin.Scanner;
public class Demo04 {
public static void main(String[] args) {
String str = new String();
str="胡";
switch (str){
case "胡":
System.out.println("1");
break;
case"照":
System.out.println("2");
break;
}
}
}

package com.zhaoxin.Scanner;
public class Demo04 {
public Demo04() {
}
public static void main(String[] args) {
new String();
String str = "胡";
byte var3 = -1;
switch(str.hashCode()) {
case 29031:
if (str.equals("照")) {
var3 = 1;
}
break;
case 32993:
if (str.equals("胡")) {
var3 = 0;
}
}
switch(var3) {
case 0:
System.out.println("1");
break;
case 1:
System.out.println("2");
}
}
}

10while 与 Do while

Do while 至少走一次,毕竟先执行


11for

不会输出3,输出0,0,1,2

public class ForDemo001 {
public static void main(String[] args) {
int i = 0;
for(i = 0;i<3;i++){
System.out.println(i);
}
}
}

System.out.print("\n");System.out.println();

100.for 在Indea里会自动帮你填充。



推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
author-avatar
AdrianFree覀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有