Java笔记(day1~day6)
绪论:
Java版本区别:J2EE (企业版) J2SE(标准版) J2ME(小型版)
Java特性:跨平台
JVM、JRE、JDK介绍:
- JVM(Java虚拟机) 不同平台上装指定版本虚拟机,就能运行Java程序
- JRE(Java运行环境) 包括JVM和Java程序所需的核心类库
- JDK(Java开发程序包) 包括JRE
综上,所以安装JDK就可以了 使用JDK开发的java程序,交给JRE运行
JRE=JVM+类库 JDK=JRE+java开发工具
DOS命令行:dir列出目录 cd 改变目录 cd..后退 cd\根目录
md创建目录 rd 删除 del 删除(文件) *通配符
help寻求帮助,可以查用法
Java -version用来在命令行中查看使用的Java版本
环境变量表示方法:%变量名%
临时设置: Path=haha(这个haha是代表任意值) 在当前命令行窗口有效 ; 删除时Path=
正文:
/*Demo演示的意思 println书写并换行
文件夹选项可以选择不要隐藏扩展名 classpath临时环境变量 classpath加;号在当前目录再找一次*/
Java语言基础组成:
关键字:都是小写; 类名大写
标识符:数字不能开头,不可以使用关键字(标识符里有-和$符号)
注释://单行注释 /*多行注释*/ /**文档注释*/
注释可以嵌套,但多行不能套多行 javadoc可提取(Java特有)
可以使用注释,进行逐段调试
注释的应用:/*需求:练习...思路: 1、...2、...3、...步骤:1、用class关键字完成定义;2、主函数:固定格式;3、输出语句*/
常量与变量:整数、小数、布尔、字符、字符串、null常量
进制 byte字节=8个二进制位
负数:四个字节表示
变量:变量作用范围(一对{}之间有效)
名字,类型,数据
格式:数据类型 变量名=值;
整数:byte(1位)、short(2位)、int(默认)(4位),long(8位)
小数:float(4个字节),double(默认)(8个字节)
字符:char(2个字节,一个中文正好两个字节)
布尔:boolean(只有True和False)
自动类型转换
强制类型转换(丢失精度)
字符+数,显示ACSII码
字符类型运算过程(Java底层用Unicode码)
类型运算符细节(byte担心存不下,Integer.Max_VALUE(int 型最大值))
算数运算符:算术运算符+ - * / %(取余) +(连接符)
++ --(在原来的基础上自加自减1)
赋值运算符:(=、+=、-=、*=、......)
+=不等于=......+......(+=在赋值中做了强制转换,=...+....是两步运算)
比较运算符:(运算完结果必须是True或者False)== != > < <= >=
逻辑运算符:&用于连接两个布尔类型的表达式
&与|或 &运算特点: ^异或:两边相同为假 !非
&&和&运算结果一样,但过程有点小区别 &右边始终参与,&&左为假,右不参与
||左边为真,后边不参与
位运算符:<<左移 >>右移 >>>无符号右移
左移几位就是乘以2的几次方,
右移:以前最高位是啥就拿啥补空位,右移就是该数据除以2的几次幂
无符号右移:右移,高位出现的空位用0补
两个数互换问题:1、引入第三方变量
2、a=a+b; b=a-b; a=a-b;
3、a=a^b; b=a^b; a=a^b;
三元运算符:(条件表达式)?表达式1:表达式2;
程序流程控制:顺序结构 判断结构 选择结构 循环结构
判断结构:if语句:1、if(条件表达式) { 执行语句; }
2、if(条件表达式){ 执行语句; } else{ 执行语句; }
3、if ........else if...........else if........ else
当if.....else......运算后有具体结果,可以用三元运算符代替
代码块:局部代码可以定义局部变量周期
switch(表达式){ case 取值1:执行语句;break; case 取值2:执行语句;break; default:执行语句;break;} (挨着大括号的break可以不用写)
循环结构:while(条件表达式){ 执行语句; }
do{ 执行语句;}while(条件表达式)
for(初始化表达式;循环条件表达式;循环后表达式)
其他流程控制语句:continue(继续);break(跳出);
函数:
定义在类中具有特点功能的一段独立小程序
函数也称方法;
可以将代码封装,复用;
定义思想错误;
内存加载进程; 栈的特点:先进后出
重载:(重复载入):在同一个类中,允许存在一个以上的同名函数,只要参数个数或者参数类型不同即可;
数组:
同一类型数据的集合,其实就是一个容器
格式1:元素类型【】 数组名=new 元素类型【元素个数或数组长度】;
int【】 arr=new int【3】;
格式2:元素类型【】 数组名=new 元素类型【】{元素,元素,...};
内存空间的划分:局部代码块;决定局部变量生命周期
堆特点:存储实体(一堆数据),不能消失;
栈:引入(指向)堆中的数据 引入(指针)
堆: 垃圾回收机制:自动不定时回收堆中的垃圾
当访问到数组中不存在角标时会发生异常
当引用型变量没有任何实体指向时,还在用其操作实体,就会发生异常
哈希值【数组 I int型
正向遍历,反向遍历,对角标操作
获取最值
排序(选择排序、冒泡排序、排序位置置换代码提取)
性能问题
面向对象:
三个特征:封装、继承、多态
对象:(名词提炼法)
用Java语言对现实生活中事物描述,通过类的形式体现
对事物描述两方面:1、属性;2、行为
对象就是该类事物实实在在个体
引用数据类型参数传递
封装:
private私有,只在本类中有效,其他类就算创建对象也访问不到
public void 函数名(){ }
函数里边可以用if判断语句
隐藏实现细节、对象属性、仅对外提供公共访问方式
1、安全性;2、便于隔离;3、提高重用性;
私有仅仅是一种体现形式(封装的)
Java语言中最小的封装体是函数
构造函数:特点:1、函数名与类名相同
2、不用定义返回值类型
3、没有具体返回值
作用:给对象初始化;
一个类中如果没有定义构造函数,该类中会有一个默认的空参数构造函数
一般函数和构造函数区别:
构造函数:对象创建时就会调用与之对应的构造函数初始化
一般函数:对象创建后,需要时才调用
什么时候定义构造函数
在描述事物时,该事物已存在就具备的一些内容,这些内容都定义在构造函数中;
构造函数,重载
参数类型,参数个数;
构造函数细节:1、对象改名:p1.setname("小强");
2、构造函数加void成一般函数;
Java笔记(day1~day6)的更多相关文章
- java笔记整理
Java 笔记整理 包含内容 Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...
- Effective Java笔记一 创建和销毁对象
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 ...
- java笔记00-目录
--2013年7月26日17:49:59 学习java已久,趁最近有空,写一个总结: java笔记01-反射:
- 转 Java笔记:Java内存模型
Java笔记:Java内存模型 2014.04.09 | Comments 1. 基本概念 <深入理解Java内存模型>详细讲解了java的内存模型,这里对其中的一些基本概念做个简单的笔记 ...
- servlet(6) - servlet总结 - 小易Java笔记
垂阅前必看: 这都是我总结的我觉得是学习servlet应该掌握的,我在学习期间也做了一个博客项目来让所学的知识得以巩固.下面就是博客项目链接.前面的servlet相关的笔记总汇,还有就是我把觉得在学习 ...
- Java笔记 —— 继承
Java笔记 -- 继承 h2{ color: #4ABCDE; } a{ text-decoration: none!important; } a:hover{ color: red !import ...
- Java笔记 —— 方法重载和方法重写
Java笔记 -- 方法重载和方法重写 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red ...
- Java笔记 —— 初始化
Java笔记 -- 初始化 h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: red !impo ...
- Java笔记 —— this 关键字
Java笔记 -- this 关键字 h2{ color: #4ABCDE; } a{ color: blue; text-decoration: none; } a:hover{ color: re ...
- Java 笔记 —— java 和 javac
Java 笔记 -- java 和 javac h2{ color: #4ABCDE; } a{ text-decoration: none !important; } a:hover{ color: ...
随机推荐
- 最新.net和Java调用SAP RFC中间件下载
还记得2012年初我发布的全网络第一个关于.net 连接SAP RFC的NCO3原创博文,用的就是SAP出的最新的.Net Connector 3.0的版本,在那个时候都是普遍用其他蹩脚的方式或Web ...
- 用keras实现人脸关键点检测(2)
上一个代码只能实现小数据的读取与训练,在大数据训练的情况下.会造内存紧张,于是我根据keras的官方文档,对上一个代码进行了改进. 用keras实现人脸关键点检测 数据集:https://pan.ba ...
- 使用Java实现二叉树的添加,删除,获取以及遍历
一段来自百度百科的对二叉树的解释: 在计算机科学中,二叉树是每个结点最多有两个子树的树结构.通常子树被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用 ...
- 让你分分钟理解 JavaScript 闭包
闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它.因此,本文不会对闭包的概 ...
- 马蜂窝搜索基于 Golang 并发代理的一次架构升级
搜索业务是马蜂窝流量分发的重要入口.很多用户在使用马蜂窝时,都会有目的性地主动搜索与自己旅行需求相关的各种信息,衣食住行,事无巨细,从而做出最符合需求的旅行决策. 因此在马蜂窝,搜索业务交互的下游模块 ...
- Java虚拟机三:OutOfMemoryError异常分析
根据Java虚拟机规范,虚拟机内存中除过程序计数器之外的运行时数据区域都会发生OutOfMemoryError(OOM),本文将通过实际例子验证分析各个数据区域OOM的情况.为了更贴近生产,本次所有例 ...
- php一致性hash算法的应用
阅读这篇博客前首先你需要知道什么是分布式存储以及分布式存储中的数据分片存储的方式有哪些? 分布式存储系统设计(2)—— 数据分片 阅读玩这篇文章后你会知道分布式存储的最优方案是使用 一致性hash算法 ...
- Odoo11入门请假单模块学习教程源码
欢迎转载,但必须明显标注转载地址. 系统:Windows10 版本:Odoo11 一.创建模块 1.创建一个模块的骨架结构目录(在windows 的 CMD中) E:\Odoo 11.0> py ...
- Android studio无法创建类和接口问题解决办法。提示 Unable to parse template "Class"
重新配置了studio 的工作环境, 没问题,后来加需求要新增java类和接口,这就出现问题了,新建的时候,就会报错: Unable to parse template "Interface ...
- xshell6 评估期已过 解决办法
xshell6 评估期已过,因为我下载的版本是evaluation版本,是有期限的.大家可以修改为Home and school use 的版本,这样就不会出现这个提示了.具体的操作步骤如下: 1.前 ...