1.开始+系统+命令提示符
2.Win键+R 输入cmd打开控制台(推荐使用)
3.在任意的文件夹下面,按住shift键+鼠标右键点击,在此处打开命令行窗口
4.资源管理器的地址栏前面加上cmd 一个空格 路径
#盘符切换 D: 冒号需用英文模式 #查看当前目录下的所有文件 dir #切换目录 cd change directory cd .. 返回上级目录 #清理屏幕 cls (clear screen) #退出终端 exit #查看电脑的ip ipconfig #打开应用 calc mspaint notepad #ping 命令 ping www.baidu.com #文件操作 md 目录名 rd 目录名 cd> 文件名 del 文件名
Intel公司的创始人之一 戈登·摩尔
当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。换言之,每一美元能买到的电脑性能,将每隔18个月翻两倍以上。但当前时代以达到摩尔定律的瓶颈
Write Once、Run Anywhere
**JavaSE:**标准版(桌面程序、控制台开发。。。)
**JavaME:**嵌入式开发(手机、小家电。。。)
**JavaEE:**企业级开发(web端、服务器开发。。。)
JDK:Java Development Kit
JRE:Java Runtime Environment
JVM:Java Virtual Machine
见jdk参考文档
1、删除Java的安装目录
2、删除JAVA_HOME
3、删除path下关于Java的目录
4、java -version
1、百度搜索JDK8,找到下载地址
2、同意协议
3、下载电脑对应的版本
4、双击安装JDK
5、记住安装目录
6、配置环境变量
1、我的电脑——>右键——>属性
2、环境变量——>JAVA_HOME
3、配置path变量
7、测试JDK是否安装成功
1、打开cmd 2、java -version
1、随便建一个文件夹,存放代码
2、新建一个Java文件
public class Hello{ public static void main(String[] args){ System.out.println("Hello World!"); } }
4、编译javac java文件、会生成一个class文件
5、运行class文件
编译型 和 解释型:
故事:一个中国人写了一部小说,一个外国人想读内容,如果现在有两种方式:
有一个翻译软件,把这本书从中文全部翻译成外语.
这个外国人请了一个会翻译汉语的翻译官,翻译官看一句汉语,同时翻译一句英语.
此时这两种方式各自有各自的优缺点:
对于方式1:一次完成,速度快.但是如果这个中国人在写完书后,突然更改了小说中的一些内- 容,此时需要从新开始翻译.
对于方式2:速度慢,但是如果小说内容有所改变,可以变改变一变翻译.
第一种方式就是编译型:常见C,C++
第二种方式就是解释型.常见Python
java语言:编译型和解释型的结合
源程序(.java文件)——>Java编译器——>字节码(.class文件)——>类装载器——>字节码校验器——>解释器——>操作系统平台
位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
1B(byte,字节)=8bit(位)
字符:是指计算机中使用的字母、数字、字和符号
1bit表示一位
1Byte表示一字节
1024B=1KB
1024KB=1M
**所有变量、方法、类名:**见名知意
**类成员变量:**首字母小写和驼峰原则:monthSalary,除了第一个单词外,后面的单词首字母大写
**局部变量:**首字母小写和驼峰原则
**常量:**大写字母和下划线MAX_VALUE
**类名:**首字母大写和驼峰原则:Man,GoodMan
**方法名:**首字母小写和驼峰原则:run(),runRun()
在代码所在文件夹下,打开运行框,输入javadoc -encoding UTF-8 -charset UTF-8 文件名.java
一个工具类,可以获取用户的输入。java.util.Scanner是Java5的新特征。
基本语法:
Scanner s = new Scanner(System.in);
通过Scanner类的**next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()**判断是否还有输入的数据。
在文件夹里操作,将**.class文件拖到装有.java文件**的文件夹中然后用idea查看
while先判断后执行,do…while是先执行后判断
Do…while总是保证循环体会被至少执行一次
for(初始化;布尔表达式;更新) { //代码语句 }
for (int i = 0; i <= 100; i++) {}
100.for
**break:**在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
**continue:**在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。
Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法:
方法包含一个方法头和一个方法体。下面是一个方法的所有部分:
修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; }
重载就是在一个类中,有相同的函数名,但形参不同的函数。
方法重载的规则:
实现理论:
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
递归结构包括两个部分:
**堆:**1.存放new的对象和数组;2.可以被所有的线程共享,不会存放别的对象引用
**栈:**1.存放基本变量类型(会包含这个基本类型的具体数值);2.引用对象的变量(会存放这个引用在堆里面的具体地址)
**方法区:**1.可以被所有线程共享;2.包含了所有的class和static变量
静态初始化:
int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)};
动态初始化:
int[] a = new int[2]; a[0]=1; a[1]=2;
**数组默认初始化:**数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化。
int a[][] = new int[2][5];
以上二维数组a可以看成一个二行五列的数组
具有以下常用功能:
冒泡排序是最为出名的算法之一,总共有八大排序
当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。
稀疏数组的处理方式是:
以类的方式组织代码,以对象的形式封装数据
特点:
作用:
注意点:定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
Alt + Insert 生成构造器
this.name = name;
.name(或.其他)是代表当前类的 ; 等于后面的一般是参数传进来的值
类与对象
类是一个模板:抽象,对象是一个具体的实例
方法
定义,调用!
对象的引用
引用类型:基本类型(8)
对象是通过引用来操作的:栈——>堆(位置)
属性:字段Field 成员变量
默认初始化:
数字:0 0.0
char:u0000
boolean:false
引用:null
修饰符 属性类型 属性名 = 属性值
对象的创建和使用
1.必须使用new 关键字创造对象,构造器 Person kuangshen = new Person();
2.对象的属性 kuangshen.name
3.对象的方法 kuangshen.sleep()
类:
静态的属性 属性
动态的方法 方法
该露的露,该藏的藏
我们程序设计要追求“高内聚,低耦合"。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
封装(数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
记住这句话就够了:属性私有,get/set
Alt + Insert自动生成get和set方法
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
extands的意思是“扩展”。子类是父类的扩展。
JAVA中类只有单继承,没有多继承!(eg.一个儿子只能有一个爸爸,一个爸爸可能有多个儿子)
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
子类和父类之间,从意义上讲应该具有"is a"的关系.
object类
super 父类
方法重写——>多态
私有的东西无法被继承!
注意:多态是方法的多态,属性没有多态性
(instanceof) 类型转换 引用类型
不能重写的方法:
判断一个对象是什么类型
总结
抽象:封装、继承、多态! 抽象类,接口
非静态方法可以直接访问类中的静态方法,静态方法不能调用普通的方法
接口就是规范,定义的是一组规则,体现了现实世界中”如果你是。。。则必须能。。。“的思想。如果你是天使,则必须能飞,如果你是汽车,则必须能跑。
接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。
面向对象的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模型都只针对具备了抽象能力的语言(比如c++、java、c#等),这就是因为设计模型所研究的,实际上就是如何合理的去抽象。
声明类的关键字是class,声明接口的关键字是interface!
内部类就是一个类在内部再定义一个类,比如,A类中定义一个B类,那么,B类相对A类来说就称为内部类,而A类相对B类来说就是外部类
在Exception分支中有一个重要的子类RuntimeException(运行时异常)
这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生;
Error和Exception的区别:
Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
异常处理五个关键字:
try、catch、finally、throw、throws