码迷,mamicode.com
首页 > 编程语言 > 详细

java基础

时间:2019-12-01 19:02:23      阅读:86      评论:0      收藏:0      [点我收藏+]

标签:img   instance   pre   volatil   识别   goto   详细设计   this   ansi   

一丶行业常识

1.计算机的组成与基本功能

主板 CPU 内存 硬盘

  1. 常用语言

  2. .操作系统

    windows linux macOS

  3. dos常用命令

    (盘符:(回车) 切换到哪个盘

    cd.. 返回上一级目录

    cd 目录名 切换目录

    切换目录的时候需要注意一下当前目录在哪里

    比如当前在c:/test

    cd d:/game/lol 这里并没有直接跳到这个目录

    d:(回车)

    cd / 跳转到根目录

    cls 清屏

    dir 显示当前目录下的所有文件和目录

    dir /s 显示当前目录下所有内容

    md 目录名 创建一个新目录

    rd 目录名 删除一个目录(目录下是空的)

    ipconfig -all 查看计算机上所有IP相关的地址(重要)

    ping 网关 百度)

  4. window系统

    5.1 后缀名

    .exe .bat 其他的后缀名,其实都是相应的软件在运行

    5.2 程序员的基本设置

    打开文件后缀名 文件夹与文件的命名不要再用中文

    5.3软件的安装和卸载
  5. .Markdown

    Typora

  6. 软件开发流程

    需求分析 概要设计 详细设计 编码 测试 软件交付 验收 维护

 

二丶java概述

1.java基本组成

jdk

java SE development kit)

jre

javaSE Runtime Environment java 运行时环境)

jvm

java Virture Matchine)

jdk与jre的区别

jdk里面的东西更多 java源代码,java 文档 其实两个本质一样的,都能运行java代码)

2.java的版本

现在最新是jdk13 jdk8 jdk6 java有几个重要的版本5,8

3.java语言的特点

面向对象 平台的可移植性

write once run anywhere)

分布式 多线程 安全性 健壮性 开源

4.java的安装与配置

5.java的工作方式

(1.编写java源代码

2.通过javac命令将java源代码.java编程字节码文件.class

3.通过java命令启动Java虚拟机,加载类文件,经过一下步骤翻译成系统能够识别的内容)

6.原始基本的工作步骤

(1.编写java源代码 Game.java

请按照固定的格式编写

2.使用javac命令将.java文件编译成.class字节码文件 javac Game.java

3.使用java命令,将Game.class文件加入到jvm中运行)

7.编码的问题

8.计算机的单位

0 1)

计算机最小的存储单位--字节(byte)

 

KB

(1024B = 1KB)

MB

1024KB = 1MB)

GB

TB

9.十进制与二进制

(十进制 0-9 10-19 20-----99 100

二进制 0 1 0 1 十进制 二进制 2 ---- 10 3 11 4 100 5 101 6 110 7 111 8 1000

二进制如何进位 二进制与十进制的基本转换

10.java相关常用的IDE

VSCode eclipse Intellij IDEA myeclips

 

三丶java基本语法

1. 关键字

有特殊意义的单词

(abstract,assert,boolea,break,byte,case,catch,char,class,constcontinue defaul do double elseenum extends final finally floatfor goto if implements import instanceof int interface long nativenew package private protected public return strictfp short static superswitch synchronized this throw throws transient try void volatile while)

 

 

2.注释

    单行(//)
多行(*

*/) 文档(/** * * * */

主要作用就是给类或者方法,变量生成具体文档说明的时候使用)

 

 

 

 

3. 基本数据类型

整型(默认所有的整型都是int类型

byte(1) short(2) int(4)

long(8)(一般声明long类型的时候赋值都要在数字后面加上L)
浮点型
float(给float类型赋值的时候后面需要加上F)

double

字符

char(2)

(字符在计算机中是不存在在,其实都是由数字关系进行比对转换而来的

ASCII 97 a 98 b

65 A)

布尔

boolean(true false)

 

 

 

 

4.数据类型的转换

    自动的数据类型转换(小的数据类型转换为大的数据类型)
强制数据类型转换(浮点型与整型之间的转换注意转换之后会丢失精度)
?

 

 

 

5.变量

    变量赋值 (数据类型 变量名 = 值)
标识符(变量名,类名,方法名) (数据类型 变量名 = 值)
标识符大小写敏感   ( int a = 19;
int A = 20
;a和A是不一样的)

 

 

 

 

6.运算符

算术运算符(

      • /

取模(取余)运算符

%

Scanner input = new Scanner(System.in);

    System.out.println("请输入一个四位整数:");

int num = input.nextInt();

System.out.println("你输入的是:" + num);

int ge = num % 10;

int shi = num / 10 % 10;

int bai = num / 100 % 10;

int qian = num / 1000;

System.out.println("" + ge + shi + bai + qian);)

赋值运算符|(

= 右边的值赋值给左边

+=

a += 2; //a = a + 2;

-= a -= 4; // a = a - 4; *=

/= %=

// a *= 4; // a = a * 4 // a /= 4; a %= 4;)

关系运算符(

//关系运算符 > < >= <= == != //关系运算符 最后的结果都是布尔值 Scanner input = new Scanner(System.in);

    System.out.println("请输入第一个数:");
int a = input.nextInt();

System.out.println("请输入第二个数:");
int b = input.nextInt();

System.out.println(a != b);

逻辑运算符(

逻辑运算符(短路运算符) && || 最终返回的也是boolean的值 一般逻辑运算符都会和关系运算符结合一起使用 && 当条件全部满足的时候才会返回true,否则就返回false 而且由于是短路运算,只有第一个条件能够直接得到答案,那么就不会再执行后面的结果

 

// boolean b = 10 > 8 && 9 < 98 && 8 < 10; // System.out.println(b); // Scanner input = new Scanner(System.in); // System.out.println("请输入小明语文成绩:"); // int yuwen = input.nextInt(); // // System.out.println("请输入小明的数学成绩:"); // int math = input.nextInt(); // // boolean flag = yuwen >= 90 && math >= 95; // // System.out.println(flag);

    //|| 只要有一个条件满足返回就是true,由于是短路运算,如果第一个条件满足,后面的就不用再运算了

// boolean b = 10 > 8 || 8 < 7; // // System.out.println(b); // Scanner input = new Scanner(System.in); // // System.out.println("请输入第一个数:"); // int a = input.nextInt(); // // System.out.println("请输入第二个数:"); // int b = input.nextInt(); // // boolean flag = ( a + b >= 10 ) && ( a / b > 4 ); // // System.out.println(flag);)

 

 

布尔运算符

位运算符

自增自减运算符

正负号

new

insteanceOf

()

[]

.

 

 

 

7.运算符优先级

同一优先级的运算符,结合次序由结合方向所决定。(意思是从左到右)

简单记就是: ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

记不住,就打上()

8.包

 

9.转义字符 \

 

 

 

四丶面向对象的内存分析

内存的分类 静态区 代码区

 

 

 

五丶java面向对象基础

1.三大特征

1.1封装

定义:按照信息隐藏的原则,将数据组织在一起。

作用:复用代码,便于维护。

特点:1.信息的集合 2.信息的隐藏

封装的级别:

1.方法的封装

2.类的封装

3.模块的封装

4.系统的封装

1.2继承

1继承的优点

1.代码的可重用性
2.父类的属性和方法可用于子类
3.设计应用程序变得更加简单
4.子类可以扩展父类的属性和方法

2继承的要点

1.子类自动继承来自父类的属性、行为;构造方法不能被继承
2.继承可以一层层传递
3.所有类的根类都是object类
4.Java当中只能是单继承,每个子类都只能有一个父类
5.java的继承机制采用的是内存叠加的方式

1.2.1:子类在同一个包下面能够范文父类除了私有private修饰的所有属性和方法

1.2.2:在不同包的情况下子类智能访问public修饰的属性和方法。

1.2.3:在子类内部,如果不同包的情况下,可以访问protected修饰的属性和方法,但是不能访问默认的访问修饰符修饰的属性和方法

1.2.4:子类在初始化的时候会先调用父类的默认不带参数构造器,如果没有,就会报错,我们只有人为的修改

1.2.4.1:将父类添加一个无参数的构造器
1.2.4.2:在子类构造器中手动使用super()声明调用哪个父类的构造器

1.3多态

定义:允许使用父类变量指向子类对象,允许使用接口变量指向实现类对象,但反过来不行。

使用:多态引用时,父类变量指向子类对象,调用的属性和方法只限于父类中定义的属性和方法,不能调用子类特有的属性和方法。

一句话描述多态:相同的行为,不同的实现。

总结:

** 使用父类类型的引用指向子类的对象**

** 该引用只能调用父类中定义的方法,不能调用子类中独有的方法,**

** 如果子类中重写了父类中的一个方法,那么在调用该方法的时候,将会调用子类中的这个方法**

** 在多态中,子类可以调用父类中的所有方法**

** 多态主要体现为重载和重写,相同的行为不同的实现方式**

** 多态主要应用为多态参数和多态集合**

①、多态参数:形参定义为父类类型,所有子类对象均可以通过实参传递

②、多态集合:利用父类类型创建集合或数组,可以将多个子类重写的方法放于集合中。

2.类(就只是一个模板)

2.1属性,成员变量,全局变量

当对象初始化之后,成员变量就会有初始值 ? String null ? 整型 0 ? 浮点型 0.0 ? boolean false ? char (char)0

2.2行为,动作,函数,方法

所有和动作相关的,都应该放入到方法中

2.3通过类创建对象 new

3.对象

对象是类的实例
也都具有属性和方法
对象都是属于某个类
一切皆对象
注意:对象是 new XXX(),而不是具体的哪个名字,名字只是一个引用

4重要的知识点和关键字

4.1 this

1.代表当前对象本身 ? 2.有时候需要把当前调用对象进行传递,那么就可以使用this替代当前调用对象 ? 3.在构造器中可以使用this([参数])调用本类的其他构造器

4.2 super

1.指代父类 ? 2.super() 调用父类的构造器 ? 3.super()如果放在子类构造器中调用,只能放在子类构造器代码的第一行 ? 4.使用super.xxx()可以在子类中调用父类中的方法

 

4.3成员变量与局部变量的区别

1.The local variable type may not have been initialized 局部变量还没有被赋值 ? 2.成员变量当对象初始化的时候会自动给上初始值 ? 3.局部变量不会自动给初始值 ? 4.如果要给成员变量赋初始值,就只能写在一行,不能再另外一行重新赋值

 

4.4重载(overload)

1.定义:方法名相同、方法参数的个数、顺序或类型不同的方法。*
2.区分:根据参数的个数和类型来判断调用重载方法。
3.判断方法重载的依据:
** ①、 必须是在同一个类中**
** ②、 方法名相同**
** ③、 方法参数的个数、顺序或类型不同**
** ④、 与方法的修饰符或返回值没有关系**

 

4.5重写(override)

1.继承 ? 2.子类重写父类的方法 ? 3.方法名一样 ? 4.参数类型,参数个数一样 ? 5.返回值一样 ? 6.注意父类private修饰的方法,子类不能重写 ? 7.子类重写方法的访问修饰符可见度,必须比父类方法的访问修饰符可见度高 ? 8.注意:如果只是方法名一样,参数不一样,这个样子是一个子类的重载而已

4.6 instanceof

4.7判断某个对象是不是某一个类型

1.对象转型 2.向上转型 3.向下转型 4.转型需要的条件 4.1.继承关系 4.2.要有相互引用的关系 4.3.查看内存图形

技术图片

4.8多态

1.继承 ? 2.重写 ? 3.父类引用指向子类对象

4.9 new

只要使用new关键字,就是创建一个新的对象 ? 要注意一个问题.不要觉得有时候参数需要一个对象,就直接new 一个对象传过去

4.10构造方法(构造器,构造函数)

1.每个类都默认有构造方法 ? 2.默认构造方法就是一个无参数的,没有任何函数体的方法 ? 3.自己手动写构造方法 ? 4.构造方法格式: 访问修饰符 类名([参数...参数]){} ? 5.构造方法可以重载 ? 6.如果我们手动写了一个带参数的构造器,会自动的覆盖系统自带的默认构造器 ? 7.习惯:如果手动添加了一个带参数的构造器,最好写一个无参数的构造器 ? this()

4.11访问修饰符

  1. public

  2. private

  3. protected

  4. friendly(默认的)

4.12 javabean

1.所有的属性都是private ? 2.为每个属性建立setter和getter方法 ? 3.这个其实就是为了以后装数据用的一个类

4.13 static

1.静态的属性和静态的方法属于整个类 ? 2.静态的值只有一个(基本数据类型可以看出此特点) ? 3.静态的值只会初始化一次(引用数据类型) ? 4.静态属性,方法或者静态块会在jvm加载的时候就加载 ? 5.一般情况下,静态的常量属性,我们一般写为 public static final 数据类型 大写常量名 = 值

5.类和类的依赖关系

 

5.1组合(has-a)

一个类是另一个类的属性

  1. 2依赖(user-a)

    一个类是另外一个类方法的参数

  2.  

java基础

标签:img   instance   pre   volatil   识别   goto   详细设计   this   ansi   

原文地址:https://www.cnblogs.com/zzc622446/p/11966748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!