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. mongodb查询实练

    1.mongodb中如何查询 (a=1 or b=2) and (c=3 or d=4)//格式:db.collection.find({"$and":[{第一个条件},{第二个条 ...

  2. 从 &quot;org.apache.hadoop.security.AccessControlException:Permission denied: user=...&quot; 看Hadoop 的用户登陆认证

    假设远程提交任务给Hadoop 可能会遇到 "org.apache.hadoop.security.AccessControlException:Permission denied: use ...

  3. print()函数的end 参数

    print()函数含end参数时:结束的时候已什么结尾,后面的参数可以是任何形式 [print() 默认以'\n'  结尾] 输出结果:  print()函数不含end参数时: 输出结果:

  4. ng-class中的if else判断

    ng-class中的if else判断 来自于stackoverflow的一个问题,自己刚好用到,搬过来做个标记.原问题链接 在使用ng-class时,有些时候会碰到根据是否满足条件来设置元素的样式, ...

  5. 本次安装Lion记录

    黑苹果驱动之家 http://it360.org.cn/ Mac安装在Macintosh上是没什么好讲的,也没什么难度,原生的东西.但每次Mac安装在PC上总能折腾一番,驱动.五国.各种报错..今天记 ...

  6. jquery 修改 bootstrap模态框的宽度并且居中

    1.定义模态框 <div class="modal fade" id="Project_Cell_Modal" tabindex="-1&quo ...

  7. JAVA第一个窗体小程序

    import java.awt.*;public class Day1015_Frame{    public static void main(String[] args)    {         ...

  8. 动易cms .net版本后台拿shell

    PS:前提是要有IIS6.0的析漏洞 网上我找了好一会儿没有找到.直奔主题.至于怎么弄到密码,全靠坑蒙拐骗. 系统设置=>模板标签管理=>模板管理 然后选则上传模板(如果新建的话会被限制掉 ...

  9. 缓存技术PK:选择Memcached还是Redis(转)

    [IT168 技术]要Memcached还是要Redis?在构建一款现代且由数据库驱动的Web应用程序并希望使其拥有更为出色的性能表现时,这个问题总会时不时出现.并给每一位开发人员带来困扰.在考虑对应 ...

  10. 基于Gitolite的Git服务架设

    如果不是要与他人协同开发,git根本不需要架设服务器,git可以直接使用本地版本库的路径完成git版本间的操作.但是如果需要和他人分享版本库,协作开发,就需要能够通过网络协议操作git库.git支持的 ...