我只是个保安啊!
目录
一、概述
Java语言三层面:
1、基本语法:变量、运算符、流程控制、数组
2、面向对象:类、对象、三大特征、接口、设计模式
3、高级应用:多线程、集合、IO流、网络编程、反射、NIO
编码习惯与高内聚低耦合
JAVA基础是学习JavaEE、大数据、安卓开发的基石。
算法加数据结构等于程序
常见DOS指令:
dir列出当前目录文件
md创建目录
rd删除目录
cd..退回到上一级目录
cd\退回到根目录
del删除文件
exitr退出命令行
计算机语言介绍
第一代语言:机器语言(二进制)
第二代语言:汇编语言(助记符表示机器指令)
第三代语言:高级语言
一阶段:面向过程
二阶段:面向对象
JVM和垃圾回收
JVM是个舞台,可以使得Java在不同环境运行
垃圾回收在JAVA程序中自动进行,但是还是会存在内存溢出和内存泄漏。
JDK、JRE、JVM的关系
JDK:java开发工具包
JRE:java运行环境
JDK=JRE+开发工具集
JRE = JVM+JavaSE标准类库
配置环境变量
path:windows系统执行命令时要搜寻的路径
因为我们希望javac在任何路径下都可以执行成功,所以事先将其添加入path
开发时另有用处,%JAVA_HOME%\bin获取变量的值
第一个JAVA程序HelloWorld
开发步骤:
1:java源文件使用javac编译成为.class字节码文件
2:字节码文件使用java.exe运行生成结果
在开发时要查看-文件扩展名
在文本文档里class之后,去命令行编译,就会同时生成一个.class文件
哈哈哈!
注释
//单行注释
/*多行注释
*/
文档注释
格式:
/**
@author 指定java程序的作者
@version指定源文件的版本
*/
注释内容可以被JDK提供的工具javadov所解析,生成一套以网页形式体现的该程序的说明文档。
在进行编译时出现两个错误
1:解码错误
解决方案:在后边加上-encoding utf-8 -charset utf-8
2:hellojava是公共的
解决方案:类名要和文件名相同
多行注释不可以嵌套
Java API文档
第一部分总结
1.编写:将编写的java代码保存在以“.java”结尾的源文件中
2.编译:使用java.exe命令编译我们的java源文件。格式:javac源文件名.java
3.运行:使用java.exe命令解释运行我们的字节码文件。格式:java 类名
在一个源文件中可以写多个类,但最多只能有一个类为public
设为公共类的应为文件名一样的类
程序的入口时main()方法,格式是固定的。
4.输出语句:
System.out.println()://先输出后换行
System.out.print()://输出不换行
5.每一行执行语句末尾都以;来结束
5.编译的过程:编译后,会生成一个或多个字节码文件,字节码文件的文件名与java源 文件中的类名相同
常见开发工具:
文本编辑工具
IDE:Eclipse&idea
测试
编写指令
public class helloworld{
public static void main(String[] args){
System.out.println("Hello,World!");//
//System.out.println();
System.out.println("Bye!");
}
}
编译:
javac helloworld.java
运行:
java helloworld
二、java基本语法
(一)变量和运算符
1.关键字与保留字的说明
用于定义数据类型的关键字:class/interface/enum/byte/short/int/long/float/double/char/boolean/void
用于定义流程的关键字:if/else/switch/case/default/while/do/for/break/continue/return
用于定义访问权限修饰符的关键字:private/protected/public
用于定义类,函数,变量修饰符的关键字:abstract/final/static/synchronized
用于定义类与类之间关系的关键字:etends/implements
用于定义建立实例以及引用实例,判断实例的关键字:new/this/super/instanceof
用于处理异常的关键字:try/catch/finally/throw/throws
其他修饰符关键字:native/strictfp/transient/colatile/assert
用于定义数据类型值的字面值:true/false/null
保留字:现有java版本尚未使用,但以后版本可能会作为关键字使用。
2.标识符
java对各种变量、方法和类等要素命名时使用的字符序列成为标识符
技巧:凡是自己可以起名字的地方都是标识符
标识符规则:数字不可以开头。不可使用关键字和保留字,但可以包含。严格区分大小写,长度无限制。不能包含空格。
命名规范:
包名:多单词组合时所有字母都小写:xxxyyyzzz
类名、接口名(大驼峰):多单词组成时,所有单词首字母大写XxxYyyZzz
变量名方法名(小驼峰):多单词组合是第一个单词全小写,第二个单词开始每个单词首字母大写:xxxYyy
常量名:所有字母都大写。多单词时每个单词用下划线连接XXX_YYY_ZZZ
3.变量
主要概念:内存中的一个存储区域,该区域的数据可以在同一类型范围内不断变化,变量是程序中最基本的存储单元,包含变量类型,变量名和存储的值。
变量的作用:用于在内存中保存数据
定义变量的注意点:先定义再使用
分类:
1.按照数据类型来分:
基本数据类型:数值型byte/short/int/long/float/double字符型char/boolean
引用数据类型:类class(字符串属于类)接口interface数组[]
数值型
整型byte/short/int/long区别:占用内存空间不一样:分别占1/2/4/8字节
浮点型float/double:分别占4/8字节(单精度,双精度)
定义float变量时,变量要以“f”或者“F”结尾
通常使用double
字符型
1字符=2字节,定义char型通常使用双引号
char c1 ='a ';//内部只能写一个字符
表示方式1、声明一个字符2.转义字符char c1 ='\n'//换行符3、直接使用unicode值来表示字符型常量
想要显示中文,另存为-编码-ANSI
boolean
基本数据类型转换:
自动类型转换:容量小的类型自动转换为容量大的数据类型
byte、char、short-->int-->long-->float-->double-->String
特别的:当byte、char、short三种类型得变量做运算时,结果为int型
byte b1 = 2;
int i1 = 129;
int i2 = b1 + i1
强制类型转换:自动类型转换的逆过程使用时要加上强制转换符()但可能造成精度降低或者溢出。
double转int
double d1 =12.3
int i1 = (int)d1
(boolean不可转换)
变量运行规则的两个特殊情况:
1.(long型编译后边没加l)(认成int型自动转换为Long)
float一定要加F
2.整型常量默认类型为int型//浮点型常量默认为double
byte b = 12
byte b1 = b +1;
String(字符串)
String不是基本数据类型,而是引用数据类型。
String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+(String在前纯连接,String在后前面算加法)
运算的结果仍然是String类型
4.运算符
算术运算符(++自增1(前):先运算再取值)
赋值运算符+= -= *= /=
比较运算符
逻辑运算符与或非异或
位运算符
三元运算符
5.程序流程控制
顺序结构
分支结构
if-else
switch-case
凡是使用swich_case的结构,都可以转换为if else,反之不成立。
分支结构优先选择switch-case
循环结构
循环结构的4个要素
1、初始化条件
2、循环条件
3、循环体
4、迭代条件
while、do...while/for
如何从键盘获取不同类型的变量:使用Scanner类
具体实现步骤:
1.导包:import java.util.Scanner;
2.Scanner的实例化
3.调用Scanner类的相关方法,来获取指定类型的变量
break和continue
带标签的break和continue