1.代码分段

当一个方法内部的代码超过7行时,就要考虑分成段落。

使用空行分隔代码

按照代码的功能进行分段

最终效果是一眼就能在宏观上把握代码的结构

(1)举例 Card

分成2段

第一段:定义变量保存数据

第二段:打印数据,实现功能

(2)分形

分形是自然界和人类社会普遍存在的现象

分形的意思是整体结构和细节结构是相似的

如河流主干好、与它支流是相似的

如叶脉的主干和分支是相似的

人类社会公路网、互联网都是分形的

 

我们写的代码一样有分形结构

(3)Card实例分段后

上面是数据

下面是功能

在结构上,它与类的结构相似

Class 类名{

 属性1;

      属性2;

 

      方法1{

}

方法2{

}

}

程序 = 输入 + 处理 + 输出

方法 = 输入 (传参) + 处理(方法内部的代码) + 输出(return)

二、关于基本类型

任何编程语言都需要基本类型

无论多么复杂的程序,无论多么复杂的类/对象,都是由基本类型组合而成的

1>表示整数的基本类型:

byte       1字节(8位)        -128---127

short      2字节(16位)       -32768---32767

int        4字节(32位)       -21亿---21亿

long       8字节(64位)       -2~63---2~63-1

2>表示字符的基本类型

char       2字节(16位)        0~65535

 

3>表示布尔值的基本类型

Boolean    1字节(8位)       true,false

主要用来表示逻辑,主要与if/else配合使用

4>表示小数的基本类型

Float        4字节(32位)       精度比较差

Double      8字节(64位)        精度稍微高一点

由于2进制的限制,大多数小数都只能保存为近似值

 

5>基本类型的理解

基本类型的存储空间是固定不变的。

如果存储数据超过相应类型的字节数就会溢出,溢出后结果是错误的。

基本类型都在当前计算机的字长范围内,也就是计算的指令可以一次性处理它。

基本类型可以直接进CPU进行计算和暂存,没有必要时不会进内存,更不会进硬盘。

基本类型的处理速度是最快的。

基本类型通常都有配套的CPU指令

 

三、java是强类型编程语言

变量的类型不会变

 

(1)Java赋值规则:

  兼容类型可以赋值

但字节变小时需要程序明确指出(所谓强制类型转换)

 

(2)JAVA字符串处理

   

  字符串不能保存在CPU中,运行时通常会保存在内存中。

保存在内存中的类型都是引用类型:

其数据在内存中

 CPU只是用一个地址(32位整数)来表示它在内存中的保存位置

 

(3)关于字符串类型为什么被设计成不可变的?

 

1>改变字符串的空间消耗比新创建一个所需要的空间还要

如果改为链表实现,容易修改,但读写性能就会很差

2>字符串在内存中是紧密存储的,后面没有空间可以供修改使用

修改字符串通常要开辟新空间(而老字符串没变)

3>即使字符串后面有空间,字符串移位也很慢。

不移位就要使用链表,而链表前后指针比字符数据大至少4倍,会导致存储空间暴增,而且读取字符性能很差.

4>字符串的 + 拼接,每一次 + 都会产生新字符串,内存消耗比较大

尤其是循环时内部拼接字符串

(4)实例分析

//使用float表示小数,误差很容易出现,通常进行精确的计算时

//不使用float,比如计算钱的时候

float a = 0.1f;

float b =0.8f;

float c =a +b;

System.out.println(c);

//即使赋值为1,也不会改变a是float的类型

a=1;

//字符串类型无法转换成float,所以是不兼容类型

//无法赋值

//a = "abc";

//已经声明过的变量,不能再次声明

//这样就阻止了改变变量的类型

//String a="123";

//Java的这种强类型的性质是Java能够在商业上应用于大型项目的重要素质

//其他弱类型编程语言,虽然开发速度快,但无法开发大型项目

//弱类型编程语言:PHP、Node.js、Python

 

//强类型语言的优势:

//1.工具可以做的很强大

//(发现错误的能力、修复代码的能力、重构能力很强、代码自动生成、代码提示能力)

//2.对于程序员的约束比较好,能够实现很多设计思想

int i = 1;

//可以直接赋值

a =
i;

double d = 1.5;

//当存储空间变小时,不允许直接赋值

//编译器为了安全会要求程序【明确】赋值

//a = d;

a = (float)d;//强制转换

四、Java中常用的格式字符串

String.format() 字符串格式化

%s 字符串,通用,通用机制

%c char

%n 换行(\n)

%d 整数

%05d 不足5位前面补0

% 5d 不足5位前面补空格

%-5d 不足5位后面补空格

%x 十六进制

%o 八进制

%f 浮点数,数字格式化

%,f 在数字中插入,

%.5f 保留5位小数

%e 指数

%% 输出一个百分数符号

%b bool,true



注意直接使用:System.out.printf("格式字符串", 值, 值…);

 

Alt shift r  同时修改相同的单词除关键字外

五、Java运算符38个

 

六、Java运算符的优先级

七、小项目实练之购物计费

编程流程思路:输入单价和数量,如果输入有误,则重新输入。无误继续运行,输出本次消费累计结果。再进行选择继续清零、退出还是继续消费。清零将从0开始计算,退出则直接退出本次消费,继续消费则将所有的消费进行累计并输出。

 

源代码:

package com.zhiyou100;

import java.util.Scanner;

public class MyShop {

public static void main(String[]args) {

double price;

int number;

double total = 0;

System.out.println("你好!欢迎光临小卖部");

while (true) {

boolean error =true;

Scanner scanner = new Scanner(System.in);

while (error) {

try {

System.out.print("请输入单价:");

price =
scanner.nextDouble();

System.out.print("请输入数量:");

number =
scanner.nextInt();

total +=
price * number;

error =false;

} catch (Exception
e) {

System.out.println("输入有误,请重新输入!");

scanner.nextLine();

}

}

System.out.printf(String.format("本次消费累计结果:¥%.2f",total));

System.out.println();

System.out.println("清零请输入c,退出请输入q,按任意键继续");

scanner.nextLine();

String choice =
scanner.nextLine();

if (choice.equals("c")) {

total = 0;

} else if (choice.equals("q")) {

System.out.println("本次计费结束");

break;

}

}

}

}

八、小项目实练之猜数字游戏

编程思路图:

 

运行结果:

 

 

 

 

源代码:

package com.zhiyou100;

import java.util.Random;

import java.util.Scanner;

public class MyGame {

public static void main(String[] args) {

int max = 100;

int min = 1;

int count = 0;

boolean value =true;

while(value) {

int trueKey = (int)(Math.random()*max+min);

int userKey =0;

while(true) {

System.out.println("相信学习的力量 相信奋斗的力量");

System.out.printf(String.format("我在心里想了一个数,它在%s~%s之间,看看你能几次猜中?",min,max));

System.out.println();

Scanner scanner = new Scanner(System.in);

boolean error = true

while(error) {

try {

System.out.print("你猜:");

userKey = scanner.nextInt();

System.out.println();     count++;

if (trueKey>userKey) {

System.out.println("你猜的数字太小了!");

}else if(trueKey<userKey) {

System.out.println("你猜的数字太大了!");

}else {

System.out.printf(String.format("恭喜你,你猜对了!你一共猜了%d次",count));

error=false;

}

} catch (Exception e) {

System.out.print("你輸入有誤,請重新輸入!");scanner.nextLine();

}

}

break;

}

System.out.println("退出请输入 q,再玩一次请回车");

Scanner scanner2 = new Scanner(System.in);

String shuRu = scanner2.nextLine();

if (shuRu.equals("q")) {

value =false;

System.out.println("nihao");

}

}

System.out.println("游戏结束");

}

}

九、Java输入易错区

问题:Scanner对象输入时,方法nextLine()会清空回车键。如果前面输入调用的方法非nextLine(),例如nextInt(),nextDouble()等方法;则不会扫描到末尾敲的回车,导致缓冲区遗留了回车键,后面调用nextLine()时读取这个遗留的回车,扫描到回车后这次输入直接结束,而没有输入内容,类似于跳过。方法nextLine()的会读取缓冲区剩余的部分,如果缓冲区有剩余内容就会直接读取输出。

解决方法:在调用nextInt(),next(),nextDouble()等方法后,后面要先写一个scanner.nextLine();来扫描清空掉这个回车,再使用nextLine()来输入。

实例演示:本例中price是int类型,输入一个整型按回车符后,后面定义为String类型的test则直接读取了这个回车符,而直接结束了,因此需要添加一条语句。

Scanner scanner = new Scanner(System.in);

int price =scanner.nextInt();

//添加的语句:scanner.nextLine();

String test =scanner.nextLine();

 

 

 

Java代码规范、基本类型和实例演练的更多相关文章

  1. C/C++、C#、JAVA(二):基本类型和转换操作

    基本类型和转换操作 数据类型 C语言中的基本类型如下. 类型 存储大小 值范围 char 1 字节 -128 到 127 或 0 到 255 unsigned char 1 字节 0 到 255 si ...

  2. Java代码规范

    Java代码规范 本Java代码规范以SUN的标准Java代码规范为基础,为适应我们公司的实际需要,可能会做一些修改.本文档中没有说明的地方,请参看SUN Java标准代码规范.如果两边有冲突,以SU ...

  3. JAVA代码规范笔记(上)

    本文为<code conventions-150003>(JAVA代码规范)笔记. 文件组织 1.超过2000行代码的源文件将会比较难以阅读,应该避免. 2.每个Java源文件都包含单一的 ...

  4. Java中的基本类型和包装类型区别

    首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...

  5. 转!!Java代码规范、格式化和checkstyle检查配置文档

    为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...

  6. 【转】Java代码规范

    [转]Java代码规范 http://blog.csdn.net/huaishu/article/details/26725539

  7. Java代码规范、格式化和checkstyle检查配置文档

    http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...

  8. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》

    终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...

  9. MyEclipse中阿里JAVA代码规范插件(P3C)的安装及使用

    JAVA代码规范插件(P3C)是阿里巴巴2017年10月14日在杭州云栖大会上首发的,使之前的阿里巴巴JAVA开发手册正式以插件形式公开走向业界.插件的相关信息及安装包都可以在GitHub(https ...

随机推荐

  1. Atitit.404错误解决标准流程and url汉字中文路径404错误resin4 resin chinese char path 404 err解决

    Atitit.404错误解决标准流程and 错误resin4 resin chinese char path 404 err解决 1. #原因解析 1 2. #解决方式 2 3. 输出图片流... 2 ...

  2. po vo

    一.PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象.使用Hibernate来生成PO是不错的选择. 二.VO:value object值对象.通常用于 ...

  3. html-blogsdemo

    博客标题小样,代码预览是有动态效果的,但在博客园发布就没动画了,知道的大神麻烦告知下,谢谢. code <!DOCTYPE html> <html lang="en&quo ...

  4. groupBox和panel

    private void Form1_Load(object sender, EventArgs e) { groupBox1.Text = "信息表"; panel1.Borde ...

  5. Bus error (core dumped) 我重启了下superviser 资源cpu占用高

    python policy.py Bus error (core dumped) 我重启了下superviser

  6. Enlish相关术语

    APM 自动编程机(Automatic Programming Machine) 高级电源管理(Advanced Power Management) OSD 屏幕显示(On Screen Displa ...

  7. 数学 + 带权中位数 - SGU 114 Telecasting station

    Telecasting station Problem's Link Mean: 百慕大的每一座城市都坐落在一维直线上,这个国家的政府决定建造一个新的广播电视台. 经过了许多次试验后,百慕大的科学家们 ...

  8. 谷歌字体(Google Font)初探 [翻译自Google官方文档]

    这个指南解释了如何使用Google Font的API,把网络字体添加到自己的页面上.你不需要任何的编码,你所要做的只是添加一个特定的CSS到HTML页面上,然后把字体关联到这个CSS样式. 一个快速的 ...

  9. 实现现下列哪一种接口的对象,并不需要在web.xml文件内进行额外的设定,Servlet容器就能够回应该对象加入HTTP会话所发生的事件?(选择1项)

    实现现下列哪一种接口的对象,并不需要在web.xml文件内进行额外的设定,Servlet容器就能够回应该对象加入HTTP会话所发生的事件?(选择1项) A.ServletContextListener ...

  10. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...