java

1. java介绍

  1. jre: java运行环境. jre=java 虚拟机+核心内裤(辅助java虚拟机运行的文件)
  2. jdk: java开发工具集. jdk=jre+java开发工具
  3. jvm: java虚拟机

jdk目录介绍

bin    //存放的的是java的开发工具
    |----java.exe    //启动java虚拟机解释并执行指定的class文件
    |----javac.exe    //启动java编译器对指定的java原文件进行编译
    |----javadoc.exe    //生成开发者文档的
db    //jdk附带的轻级数据库
include    //存放调用系统资源的接口文件
jre    //java运行环境
lib    //核心类库
src.zip    //java原始代码

2. 规范

1.类名和接口名大驼峰
2.变量名与方法名单词小驼峰
3.包名全部小写
4 常量全部大写中间下划线隔开
5.有小括号的是方法没有的是属性

注释规范

1.一般单行注释是在代码的右侧
2.多行注释和文档注释,一般是在类和方法的上面
3.@author 张舫邮箱1069303772@qq.com 留名

常量的类别

1.整数常量
2.小数常量
3.布尔常量 true|false
4.字符常量 //指单个字符用单引号包起来的单个字符
5.字符串常量 //使用双引号包起来的内容

进制

程序里如何使用二八十六进制

进制:用有限的数字符号表达所有的数据.
十进制和二进制的转化

十进制转二进制

二进制转十进制

八进制的由来and十进制和八进制转化
八进制的由来

十进制转二进制
八进制转十进制

八进制转二进制

十六进制的相互转化

十六进制转换
十进制转化十进制
十六进制转化十进制
十六进制的由来

变量

变量就是一个存放数据的容器
容器具备什么特点
1.容量(大小)
2.存储一定格式的数据
3.名字
定义一个变量的格式:
java表示一个变量的容量多大是使用了数据类型描述的.在java中的数据类型主要有两种数据类型
基本数据类型
引用数据类型
java中的八种基本数据类型
整数的数据类型:

  1. byte(字节) 8bit(位) 2^8 -128~0-127
  2. short(短整形) 16bit(位) 2^16 2^16=65536
  3. int(整形) 32bit(位) 2^32 4294967296
  4. long(长整形) 32bit(位) 2^64 18446744073709551616
    注意:一个整数没有加上任何表示的时候,默认是int类型的数据如果需要把该数据表示成一个long类型的数据,那么需要加数据后面上L表示,不区分大小写,建议使用大写

小数的数据类型(表留的小数位不同)

  1. float(单精度浮点型) 32bit 7个小数位
  2. double(双精度浮点型) 64bit 15个小数位
    注意:如果一个下小数没有加任何标示的时候,那么该小数默认是double类型的数据,如果需要表示成float类型,那么需要在小数的后面就是f表示.f不区分大小写的建议大写
    容量 变量名字 = 数据;

布尔类型

  1. boolean 一个字节或者4个字节
    java规范2.0(java白皮书)

字符类型

  1. catr 2字节(16bit)

数据类型转化

小数据类型-->大数据类型 //自动类型转化
大数据类型-->小数据类型 //报可能会损失精度
强制数据转化
小数据类型 变量名=(小数据类型) 大数据类型的变量
强制类型转化原理

强制转换去取低8位

数据类型转换要注意的细节:
1.凡是byte,short,char数据类型在运算的时候都会自动转换int数据在运算.
1.两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
计算机中的负数都是补码
为什么是128

负数如何转化为二进制

运算符
算数运算符

/
%
++
--
计算机每次运算的时候只能取两个数据运算
在java中做取模运算时正负取决于被除数

后自增在java虚拟机的运行原理

自增原理

赋值运算符
=
+=
-=
*=
/=
%=
比较运算

==
!=

<

<=
>=
逻辑运算符

& (与) //并且
| (或) //或者
^ (异或) //不相同
! (非)
&& (短路与\双与)
||(短路或\双或)

位运算符直接对二进制位操作

& (与)

与怎么算

| (或)

或怎么算
读取低四位

^ (异或)

异或怎么算
两个变量交换值

~ (取反)

怎么取反

位移运算符
<< (左移)

左移规律
如何高效算出2乘8的结果

>> (右移)

注意:一个操作数在进行右移运算的时候,如果该操作数是一个正数,那么右边空缺位使用0补齐,如果该操作位数是一个负数,那么使用1补齐

右移规律

>>> (无符号右移)

无符号右移和右移的区别

三元运算符(三目运算符)
格式: 布尔表达式?值1:值2;

运算符的优先级和结合性

控制流程语句

使用分号分割的代码就是一个语句
按照代码顺序从上往下执行所有的代码就是顺序语句

判断语句
if else

if

switch

  1. 'switch语句使用的变量只能是byte ,char ,short ,int ,string ,jdk7.0开始支持string
  1. case后面跟的数据必须是一个常量
  2. switch语句一旦匹配到其中的一个case,呢们就会执行对应case中的语句,执行完毕后没有遇到break或者是结束switch语句的大括号,哪门switch语句不会再谱安顿,按照代码顺序从上往下执行所有的代码>直到遇到break或者是switch语句的大括号为止.
  3. 不适用于区间范围的条件

switch格式

循环语句
while

while格式

do...while

while的条件怎么写do while就怎么写

for

for格式
for循环原理

转义字符 \

换行注意

特殊字符使用\将其转化
\b Backspace (退格键)
\t Tab (制表符) //上一列对齐 一个tab一般等于4个空格
\n Linefeed (换行)
\r Carriage Return (回车)
\ Backslash (反斜杠)

break continue关键字

  1. break适用范围:只能用于switch或者是循环语句中
  2. break用于循环语句中的作用是结束当前所在的循环语句
  3. 标记要符合标记的规范
如何让内部的循环影响外部的

continue的适用范围:continue只能用于循环语句
continue的作用:continue的作用是跳过本次的循环内容.继续下一次循环

函数(方法)

函数的格式

函数分析

函数的重载:在一个类中出现两个或者两个以上的同名函数这个称作函数的重载.
函数重载的作用:同一个函数名可以出现了不同的函数,以应对不同个数或者不同数据类型的参数
函数重载的要求:

  1. 函数名一致
  2. 形参列表不一致(形式参数的个数或者是对应的数据类型不一致)
  3. 与函数的返回值类型是无关的
函数重载的例子

return的作用

  1. 返回数据给函数的调用者
  2. 函数一旦执行到了return关键字,函数马上结束;

数组

数组的特点
数组的使用
栈堆分析图

null不让变量引用任何值,不要记录任何内存地址

数组常见的问题
数组的初始化方式
找最大值
选择排序的原理图

一个固定,一个变换,最大或者最小放在左边

选择排序算法(直接排序)

冒泡排序原理图

两个一起变化最大或者最小的放在右边

冒泡排序
二分查找法原理图
二分查找法
反转

**二维数组数组

二维数组
二维数组原理

面向对象
对象:真实存在的唯一事物
1.我们一般不会给匿名对象属性值,因为永远获取不到.
2.两个匿名对象永远不可能是一个对象


构造函数要注意的细节

  1. 构造函数,是没有返回值的
  2. 构造函数的函数名必须要与类名一致
  3. 构造函数并不是由我们手动调用的,而是在创建对应的对象时,jvm就会主动调用到对象
  4. 如果一个类没有显示的写上一个构造方法是,那么java编译器会为该类添加一个无参的构造函数

javap 反编译工具的使用格式
javap -c -l -private 类名


单例设计模式

单例设计模式保证一个在内存中只有一个对象
饿汉单例设计模式(推荐)

步骤

  1. 私有化构造函数
  2. 声明本类的引用类型变量,并且使用该变量指向本类对象(自己new自己传参给变量)
  3. 提供一个公共的静态的方法获取本类的对象
饿汉

懒汉单例设计模式(会存在线程安全问题,目前还不能再一个类在内存中只有一个对象)

步骤

  1. 私有化构造函数
  2. 声明本类的引用类型变量,但是不要创建对象.
  3. 提供公共静态的方法获取本类的对象,获取之前先判断是否已经创建本类对象,如果已经创建了,那么直接返回对象即可,如果还没有创建先创建在返回.
懒汉

java权限修饰符

权限图

生命周期状态图

生命周期状态图


线程的定义方式
方式一:

  1. 自定义一个类继承Thread类
  2. 重写Thread类的run方法,把自定义线程的任务代码写在run方法
  3. 创建Thread的子类对象,并且调用start方法启动一个向线程

方式二:

  1. 自定义一个类实现Runable接口
  2. 实现Runnable接口的run 方法,把自定义线程的任务定义在run方法.
  3. 创建Runnable实现类对象
  4. 创建Thread类对象,并且把Runnable实现类的对象作为一个实参传递
  5. 调用Thread对象的start方法开启一个线程

线程安全问题

  1. 存在在两个或着两个以上的线程对象共享共享同一个资源.
  2. 多线程操作共享资源的代码有多句

推荐使用方式二
原因:因为java单继承多实现

注意

注意:千万不要直接调用run方法,调用start方法的时候线程就会开启,线程一旦开启就会执行Run方法中代码,如果直接调用
14day2 3:23

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,954评论 18 399
  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 5,513评论 4 12
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,937评论 0 62
  • 双十年华的女孩子,在过了忙碌的四个月的实习生活,每天早晨八点半上班,然后几乎每天晚上八点多吃饭下班,甚至更晚,...
    羲子阅读 3,311评论 0 1
  • 任时光不老,我们不散。 “小天,我告诉你一个秘密哦。” “嗯。” “我的妈妈死了,出车祸去世了,为了救哥哥。所以我...
    阿俊xi阅读 1,482评论 0 0