java

作者: 灬感同身受灬 | 来源:发表于2016-12-10 18:10 被阅读0次

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

相关文章

  • Java(JavaEE)学习线路图1

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • Java学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习线路图

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 大数据学习教程

    Java教程 Java 教程Java 简介Java 开发环境配置Java 基础语法Java 对象和类Java 基本...

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • java学习路线

    javaSE java基础语法 java文件操作 java网络操作 java多线程 java数据库操作 java ...

  • java编程分类

    一、java简介java开发环境配置java基础语法java对象与类java基本数据类型java变量类型java修...

  • Java-01初识Java

    Java的3大版本 Java有三大版本,Java SE, Java ME, Java EE Java SE(Jav...

  • JAVA循环语句(四)9.29

    Java条件 if Java条件if...else Java条件多重if Java条件语句 嵌套if Java条件...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

网友评论

      本文标题:java

      本文链接:https://www.haomeiwen.com/subject/eylwpttx.html