Java的基础框架

  • 3W:What How Why

  • What:一个东西是什么,具备什么样的功能 怎么用

  • How: 怎么做?功能如何实现

读源代码(jdk)->学习很多,优雅的编程技巧建立在what的基础上Why:设计(为什么别人要用这样的设计实现这样的功能)-->建立在how> > 的基础上(设计师,架构师)

说明:阅读代码比学代码难很多的!

idea create new project-create class文件

  • java语法中类被public修饰:

  1. 文件名和public修饰的类名必须相同

  2. 一个java文件中,有且仅能有一个被public修饰的类

  3. 可以有多个java类,只是这些java类不能被public修饰

  4. javac的编译和执行单位,是类不是文件

关键字

  • 概述:被Java语言赋予特定含义的单词(名称)

  • 特点:组成关键字的字母全部小写

  • 关键字注意事项:goto和const作为保留字符存在,目前并不使用

在Java中一共只有ppt中列出的49个关键字

关键字注意事项:

  • goto和const作为保留字存在,目前不适用

  • 类似editplus,notepad++这样的高级记事本,针对关键字高亮

Java语法规定如果一个java文件中,有一个类这个类被public修饰

  1. Java文件的名称必须与这个public修饰的公共类完全相同

  2. 一个Java文件中必须只能有一个被public修饰的类

  3. 但是可以有多个java类,这些不能被public修饰

  4. javac的编译和执行单位是类而不是文件

标识符(自己起的名字)

  • 含义:就是给类,接口,方法,变量等起名字时使用的字符序列

  • 组成规则:

    • 1 . 英文大小写字母

    • 2 . 数字字符

    • 3 . $和_

  • 注意事项

    • 1 . 不能以数字开头

    • 2 . 不能是Java中的关键字

    • 3 . 区分大小写

在实际开发中

对类和接口,变量和方法,包,常量起名字的时候,为了让我们的代码具有更高的可读性:有约定俗成的命名规则

1.类和接口:
  • 一个单词:该单词首字母大写,其余字符小写。

  • 多个单词:每个单词首字母大写,其余字符小写。//为了让代码更具可读性。public class JavaSign/ public class HelloWorld/ GetElementById

2.变量和方法起名字:
  • 一个单词:全部小写 (main,get,set,a)

  • 多个单词:第一个单词首字母小写,其余单词首字母大写 (toString,getClass)

3.包:

作用:为了组织java类的,避免命名冲突

  • 一个单词:全部小写。(javabasic)

  • 多个单词:域名反转形式:com.cskaoyan.www

    网络中,ip地址->域名具有唯一性

    域名:不是真的只有一个域名

4.常量:
  • 一个单词:所有字母全部大写,例如:PI,MAX,MIN

  • 多个单词:所有字母全部大写,但是单词之间用_连接,例如:MAX_VALUE,MIN_VALUE,STUDENT_AGE

注释

  1. 概述:用于解释说明程序的文字

2.分类

  • 单行注释://注释文字

  • 多行注释:/* 注释文字 */

  • 文档注释:/** 注释文字 */ 生成jdk文档时候用,让编译器忽略注释符号所指代的那些文字,这些文字只给我们开发者来阅读

3.应用

  • 先写注释,再写代码

  • 第一步,完成xxx功能 //容易排错

4.注释的好处

1.梳理思路

2.排错,阅读代码,判断代码中的所表述的步骤,是否和注释说明的情况相一致(逻辑)

// 这是单行注释​/*多行注释*/​/** 这是文档注释*/

常量

概述

在程序执行当中不会发生改变的量

常量分类

  • 字面值常量
    • 字符串常量:”hello world“

    • 数值常量:34 59

    • 小数常量:所有小数:0.2. 0.1

    • 字符常量: 单引号括起来的常量 'a' 'b' '中'

    字符和字符串存储的时候,存储的是代表字符或字符序列的数值; 每一个字符,都有相对应的数值。

    单个字符用' ' , >=2个字符用" ".

    ASCII码表

    码表 ascii
    字符 数值
    'A' 'B' 'C' 65 66 67
    '0' '1' 48 49
    'a' 'b' 'c' 97 98 99
    • 布尔常量: true false

    • Null空常量: 面向对象

  • 自定义常量(面向对象)

进制数

二进制

  1. 取值范围(0和1),基数为2

  2. 转十进制 110 = 1 * 2^2 + 1 * 2^1 + 1*2^0 =7

  3. 每一位数字代表的实际值=x*2^n-1

八进制

  1. 取值范围(0-7),基数为8

  2. 转十进制 567 = 5 * 8^2 + 6 * 8^1 + 7*8^0 =

  3. 每一位数字代表的实际值=x*8^n-1

十进制

1.由0~9组成。整数默认是十进制

十六进制

  1. 取值范围(0-9 abcdef),基数为16

  2. 转十进制 c3= 12 * 16^1 + 2 * 16^0

  3. 每一位数字代表的实际值=x*16^n-1

不同进制之间的转换

  • 十进制转二进制,八进制,十六进制

    • 除整取余 (12) 第一步 12 % 2 余0

    • ​ 第二步 6 % 2 余0

    • ​ 第三步 3 % 2 余1

    • ​ 第四步 1 % 2 余1

    • 所以 (12)=( 1100)~10~

  • 二进制转八进制,十六进制

    • 1100 0010 转化为八进制,三位二进制可以表示的范围为0-7,刚好是八进制一位的取值范围,如果是小数,就在小数点向左或向右补全0⃣️。

    (011)(000)(010)=302

    • 二进制转十六进制,从右向左,每四位为一组,(1100)(0010)=c2

常量(不同进制的表现形式)

//1100的十进制:system.out.println("1100");//1100的二进制:system.out.println("0b1100");//1100的八进制:system.out.println("01100")//1100的十六进制:system.out.println("0x1100")

常量(符号数据表示法)

在计算机内,有符号数有3种表示法:原码、反码和补码

所有数据的运算都是采用补码进行的。

符号位不用分开计算,可以直接和数值位参与运算

正数和负数

一位二进制来表示正负,0为正,1为负

  • 原码:带符号位的数值1100: 正数 0000 1100 表示 +1100

  • ​ 负数1000 1100 表示 -1100

  • 反码:正数的反码与原码相同;负数的反码数对其原码逐位取反(1为0,0变1),但符号位除外。

  • 补码:正数的补码与原码相同;负数的补码是在其反码的末位+1。

  • 原码和其对应的补码的关系:原码 与 补码 是某种互补关系.

    • 已知原码求补码,已知补码求原码. ////////////////

    • 0000 0000 是 0

    • 1000 0000 是-0 反码:1111 1111 补码为: 0000 0000 (反码后+1,进位,保留八位)

变量

变量定义格式(固定格式):

数据类型 变量名 = 初值(字面值常量)

int getValue = 10;

  • 概述

    • 在程序执行的过程中,某个范围内其值可以发生改变的量。

    • 不同的数据类型,给变量分配不同的内存空间。

  • 变量的初始化:给变量赋值

  • 变量的作用域:在同一作用域(main函数大括号)内不能有重名变量。

数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。(对数据类型的区分非常严格)

分类

1.基本数据类型

各种类型所占空间不同,所表示的数据范围不一样。

  • 数值型

    • 整数类型(byte ( -128-127)(一个字节),short(2),int(4),long(8个))

    • 浮点类型(flout,double)

  • 字符型(char)

  • 布尔型(boolean)

整数默认:int (比如10) 小数默认:double (比如0.0)

如: ❌ flout c = 0.1 对: flout c = 0.1f

2.引用数据类型

  • 类(class)

  • 接口(interface)

  • 数组([])

类型转换

  • 布尔类型不能转换为其他数据类型

  • 默认转换(小类型转换为大类型) (大范围类型无法放到小范围)

    • byte,short,char—>int—>long—>float—>double

    • byte,short,char相互之间不转换,他们参与运算首先转换为int类型.

      • char类型可以根据ascii转化和int类型相加

  • 强制类型转换(大类型转小类型)

    • 目标类型 变量名=(目标类型)(被转换的数据);

  • short b = 100;

    Byte aa = (byte)(b+1);

    //0 1000 0010

    //

    Byte bb = (byte)130 //超出范围,截取限定位数

JavaBasic_02的更多相关文章

随机推荐

  1. noip2014无线网络发射器选址

    题目描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的 129 条东西向街道和 129 条南北向街道所形成的网格状,并且 ...

  2. Springboot+Mybatis批量导入多条数据

    在Mapper.xml最下面填写 <!-- 批量插入生成的兑换码 --> <insert id ="insertCodeBatch" parameterType= ...

  3. CentOS安装JDK-tar.gz文件

    1.下载JDK,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html. 测试 ...

  4. Java集合list,map,set区别及遍历

    1.1 List.Set.Map基本区别 1.List,Set都是继承Collection接口,Map不是. 2.List:LinkedList.ArrayList.Vector Set :HashS ...

  5. laravel中判断当前页面与连接地址是否一致,并添加效果:

  6. shell 多重条件判断

    多重条件判断 '判断1 -a 判断2' 逻辑与,判断1和判断2都成立,最终的结果才为真 '判断1 -o 判断2' 逻辑或,判断1和判断2有一个成立,最终的结果就为真 '!判断' 逻辑非,使原始的判断式 ...

  7. Linux Shell 编程 教程 常用命令

    概述: Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户 ...

  8. Java反射(一眼就看会)

    参考:(1)http://blog.csdn.net/liujiahan629629/article/details/18013523(2)https://www.zhihu.com/question ...

  9. java阶段学习目标

    0-1年: <java编程思想> 1-2年: <大话设计模式>http://www.cnblogs.com/zuoxiaolong/p/pattern26.html <重 ...

  10. opencv3.0+vs2013安装记录

    为了能够更好的学习图像,我觉得opencv是一个必不可少的库,因此在以后的研究上使用opencv作为研究工具,与大家共同进步. 话归正题:先搭建opencv的环境. 1.下载安装包3.0 a,官网打开 ...