学完了《21天学通java》这本书,阶段性总结一下:

一、java简介

1.java3种版本:se、ee、me,特点及适用对象:javase是javaee及javame的基础,主要用于开发和部署桌面应用;javaee是企业级应用,主要用于电子商务网站等的开发,其中加入了应用框架(ssh);javame主要用于嵌入式(汽车导航系统)以及嵌入式设备开发,安卓ios,手机游戏等。

2.java语言特点:跨平台、可移植、语言简单方便、安全(垃圾回收机制)、面向对象、多线程。

3.jdk:java开发的工具包,包含了java运行环境(jvm+类库)和java工具。

4.为何配置环境变量及配置环境变量的方法:配置环境变量简单来说就是为了能在计算机的何位置都能使用cmd打开shell环境调用javac及java命令进行cc程序的编译及运行。方法:右键此电脑-属性-高级系统设置-高级-环境变量-系统-path-将bin文件夹的路径复制粘贴到这里-加“;”-完成-在桌面上打开shell输入“javac”验证。(可以先新建classpath再将classpath添加进path,目的是方便多次修改jdk安装路径)

5.jdk各个目录(7个)的含义:

(1)bin:①javac.exe:编译源程序,生成机器可以识别的二进制字节码。②java.exe:解释执行字节码文件,运行程序。③javadoc.exe:文档语言生成器,将源程序中的注释生成html文件④jar.exe:java语言归档工具,将包结构压缩成jar文件⑤aappletviewer.exe:用来查看applet小程序

(2)include:包含c语言的头文件,支持java本地接口及jvm调试程序接口的本地代码编程。

(3)jre:java运行环境,包含jvm

(4)demo:含有源代码的演示例程

(5)lib:java开发工具使用的归档文件,包含tools.jar,包含jdk的工具及程序使用的非核心类

(6)src.zip:组成java api编程样例的源代码

(7)sample:包含一些java api的编程样例

6.java开发三个步骤:编辑源程序,javac编译生成字节码文件,java解释运行字节码文件。

7.每行代码不超过80字符。8.eclipse开发步骤:新建项目-新建包-新建类-编译运行

二、基本数据类型

1.8种基本类型:byte short int long char float double boolean,各占1,2,4,8,2,4,8,1或4字节。其中char类型字节数要根据编码方式判断(unicode或utf-8),boolean取决于jvm,当作int还是byte处理。默认值:char:\u0000,boolean:false。5种引用类型:数组、类、接口、枚举、标注。1个字节8位二进制位。

2.进制转换:连除法。

3.数据类型间转换:低精度转高精度自动转,反过来则强制,但是会损失精度。

4.unicode码:因为ascii码不够表示中文等其他字符,所以添加了一个字节,中文用3个字节表示。ascii码:A和a分别是:65,97,utf-8:当存储程序时为了节省空间转为utf-8自适应字节数,节省空间。

5.标识符命名规则:字母开头,字母数字下划线$组成,不可以是关键字,区分大小写。其中包名要全小写,常量名要全大写,类名要首字母大写,变量名及方法名一个单词时小写,多个单词时第二个开始首字母大写。

6.3种注释格式:/**/、//、/***/。

7.写代码的规则和规范:ctrl shift f是eclipse格式化代码快捷键。

8.String类型不同位置的区别??

三、运算符

1.负数取余的正负由被除数来确定。

2.两个不同类型数的运算结果的数据类型:默认为高精度。

3.优先级(14级):口诀:单目乘除为关系,逻辑三目后赋值。具体:[]().  ++--+-!  */  +-  >> << >>>  ==!=  ><   &  ^  |  &&  ||  =+=-=。

四、流程控制

这部分太简单简单记

1.enum:详细介绍:https://blog.csdn.net/qq_27093465/article/details/52180865。enum Color{RED,YELLOEW},看作一个类

2.知道循环次数用for不知道用while

3.break用来跳出循环语句

五、数组

1.数组是一种存储数据的集合。

2.如何创建一维及多维数组:两种创建方式:(1)动态:int[] arr;arr= new int[4];(2)静态:int[] arr = new arr[4];  初始化:(3)int[] arr = new int[]{1,2,3};(4)int[] arr={1,2,3};

3.如何键盘输入:import java.util.*; Scanner in = new Scanner(System.in); int a = in.nextInt();

4.数组的复制及排序:System.arrayCopy(arr,0,arr1,0,length);Arrays.sort(arr); 打印完整的数组:System.out.println(Arrays.toString(arr));//Arrays类和System类都需要import java.util.*;有个问题是使用Collection接口逆序时出错:Arrays.sort(arr,Collections.reverseOrder());原因亟待解决。

六、类与对象

1.面向对象:针对于要实现的功能分模块去实现各部分功能

2.面向对象的主要特点:抽风极多。抽象:把现实世界的某一类东西提取出来,用代码表示,一般抽象出来的是类或接口。不用关注其全部特征,而是一部分需要注意的特征,分为数据抽象(类的属性)和过程抽象(类的方法),比如抽象出人类。有胳膊有腿为属性,走路跑步为人类的行为(方法);封装:将特定的属性和方法包装起来,想要访问必须通过特定的界面,如私有变量,用set,get获取。举例理解:人类住在地球上,想要学习人类走路的方法,必须打开大气层,大气层把人类封装了;继承:子类从父类得到属性(非private)和方法,可以添加其它属性和方法,同时也可以重写其父类方法,但是增加了代码冗合度,男人是人类的子类,使用super访问父类成员变量及方法,this指向自己,final修饰的类不能继承,修饰的方法不能重写,属性不能修改;多态(较难理解):多态就是不同类的对象,对同一消息作出不同响应就叫多态,就像小明和小红得知中午吃榴莲是一样的。多态存在的3个条件:存在继承关系、父类方法被重写、父类引用指向子类对象。以下三种方法不能实现多态:(方法不能被重写)(1)、static方法,被static修饰的方法是属于类的,而不是实例的。(2)、final,被final修饰的方法不能被重写。(3)、private和protected方法。private修饰的方法对子类不可见。而protected修饰的方法可以被子类见到,也可以重写,但是不能被外部引用。

理解多态(假如有一个父类Father和子类Children)

          (1)、向上转型是自动的   Father  f  = new Children();不需要强转

          (2)、向下转型需要强转   Children c = (Children)new Father()需要强转。让父类知道具体转成哪个子类

          (3)、父类引用指向子类对象,子类重写了父类的方法,调用父类的方法,实际是调用子类重写父类的方法后的方法。Father f  = new Children();f.toString()实际是调用子类重写后的方法。

多态的分类:方法重载实现的是编译时的多态性,而方法重写实现的是运行时的多态性。方法重载:当多个同名方法存在时,方法名不变,但参数类型和个数不同称为方法的重载,不以返回值来区分重载。方法重写:父类与子类之间的多态性,对父类的方法重写,若子类中的方法与父类中的方法具有相同的返回值,方法名和参数列表,则新方法会覆盖 旧方法。

参数列表相同,返回值相同,方法名相同,不能抛出新的检查异常则就是重写。参数列表的类型,个数不同,方法名相同,返回值可以相同也可以不同称为重载。可以抛出新的异常,可以有不同的访问修饰符。

3.面向对象和面向过程的区别:一个是分模块进行,一个是一步部执行。

4.引用和对象的区别:http://www.cnblogs.com/dolphin0520/p/3592498.html   个人认为把引用看成是变量,创建对象的过程相当于赋值的过程,对象是在内存中切实存在的,引用只是它的称呼。

5.同包内的类可以直接用,不同包内的类需要先导入包。

6.成员变量要实例化后才能访问,所以先用引用给其赋值。

7.局部变量和成员变量的区别:前者在方法内后者在方法外,前者在栈后者在堆,前者与对象共存亡,后者与方法共存亡,局部变量没有默认初始值要初始化不然编译报错。

8.除了使用静态变量和方法之外,类中的变量和方法只能通过对象的引用来调用,但在类内可用this,this只能在方法中用,但是不能在static修饰的方法中用。创建这个类的引用是什么,这个this就是什么。写一个this的具体用法:

9.引用只是内存中的一个地址。

10.Date类、Integer类、Integer.parseInt(s)。

七、控制逻辑

1.创建包:package mypackage;几个常用的包:java.lang:一些java基本类,包括object。 java.util:包含一些附加工具类,包括Arrays。 java.io:包括两个最主要的抽象类InputStream和OutputStream。参考链接:https://wenku.baidu.com/view/5c9aa424c1c708a1294a44f5.html

2.静态引入?https://www.cnblogs.com/mengdd/archive/2013/01/23/2873312.html

3.不同修饰类区别:

4.封装:展现接口,隐藏细节,http://www.runoob.com/java/java-encapsulation.html(简单)

5,final修饰符:https://www.cnblogs.com/xiaoxi/p/6392154.html

final可以修饰类、方法、变量、常量。

修饰类:原本含义有两点:1,不能被继承.2.提高效率,用作嵌入程序,现在这一点基本被忽略。

修饰方法:可以让子类无法重写覆盖父类的方法,但是因为private修饰的父类方法是无法被子类继承的,因此如果用private final修饰方法,子类中将可以写一个和父类的方法名一致的新方法。

修饰变量:一种是基本变量,这个变量不可被修改,修饰成员变量的话 成员变量有两种初始化方式,要么再定义的时候就初始化,要么在类的所有构造函数中全部初始化。要注意,这种情况时,类似于c语言中的define,在编译时遇到这个变量就换成它的值,但是没有final的话则是在运行时通过链接进行计算。具体例子见网址。

一种是引用变量,引用变量指向的地址(对象)不能变,但是地址的内容即对象的内容可以变。

6.所谓静态是指内存中只有一份。static。

7.静态变量:不属于对象属于类,因此只有一份。

8.main为静态方法,若要使用成员变量必须把这个成员变量修饰为static。静态变量不依赖于对象的加载而是类,类加载后对象可能还没加载。所以静态成员变量是属于类的,生命周期比非静态长,静态方法里只能使用静态成员变量,

9.对象存在的时候静态成员变量一定存在,反之则不然,由于this不知道指向哪个对象,所以不能使用this。

10.静态常量声明方法:要在对象创建前对其初始化。

八、继承

1.继承(定义特点目的):

2.一个孩子只能有一个父亲但是一个父亲可以有多个孩子

3.关于继承中构造器的说法(无参、有参)

4.protected特点

5.成员变量的覆盖,编译期与运行期不同

6.对象引用

7.理解bike b = new bike();bike b1 = b;

8.方法的重写和重载,概念,用法区别,和变量的覆盖变化。

9.

理解static用法:static表示静态,只能有一份,类调用、对象引用a编译期为bike类型,运行期为racingCycle类型,但move声明为static类型类方法,不能被重写,因为没有继承过来所以还是输出父类的hayaku。

10.方法重载:一个类中方法名字相同但是参数不同(个数或者类型)

11.基本类型和引用类型作为参数传递https://www.cnblogs.com/lixiangyang521/p/7843179.html

还是需要思考一下的,,

12.重写和重载有传递引用类型和基本类型区别

13.重写的返回类型有基本类型和对象引用类型,对象引用类型(相同、不同)

14.重写重载是基于继承的

15.静态方法不能被重写

16.三者关系,并重写toString.equals方法

17.final与继承关系,修饰类时,引用时

18.abstract 与final相反,抽象类永远  唯一作用是 抽象类最少要有一个抽象方法让子类去实现它

19.抽象类的一些特点

20.多态

21.static和final修饰的方法都是在编译时期绑定的,而其他方法是在运行时期绑定的,多态是基于继承的类和接口结合实现。

22.枚举,类似于一个类封装了一些成员变量,提高效率,写法:enum meiju{a,b};

23.反射.放大镜:可通过类名加载这个类显示出这个类的方法等信息,可以在运行中对程序动态控制,举例:

24.泛型,解释实例:

九、接口

1.接口是一个完成特定功能的类,是一个功能的集合(产品说明书)

2.模型:public interface jekou{(默认为p s f)}

3.特性:多层、多继承

4.接口不能为final类型的,因为final必须实现,其中方法是没有方法体的,在接口里定义的成员变量为常量

5.接口是一个特殊抽象类,方法全为抽象的,类是一个产品的详细说明,接口是这些功能的简要说明。

6.接口中方法创建规则:(1)隐含公有、抽象(2)方法不可是final、static,且只能用public修饰

7.接口方法与类方法区别:(1)接口方法默认为public、abstract;(2)类若修饰为abstract则有错;(3)接口中方法不能为static、final、只能是public、abstract类型;(4)类中方法不能为abstract、final类型。

8.接口引用如何使用:public class test implements a

9.什么是抽象类,与接口区别?(从方法角度想)

10.抽象类使用和特点:子类必须实现所有抽象方法,不然子类也为抽象类。

11.接口的多态:food f1=new ora();

12.instance of,注意事项(5).不推荐使用instanceof 应该多用多态。

十、构造器

1.构造器好比盖房子的工具,new是工人,构造器必须没有返回类型

2.构造器方法与普通方法区别

3.对象实例化,原来new后面跟的是构造器。

4.构造器几种调用方式:(1)本类或者同包另类调用,(2)子类调用父类

5.构造器重载

6.父子继承时构造器的调用流程:用super可显式的指定构造器,不用super默认先父(初始化后)后子构造器。

7.如何自定义构造器?就是不显式的定义构造器

8.单子模式:某个类在同一时刻只允许有一个对象,即把构造器修饰为private类型,用public类型返回该对象的引用。

9.构造器在程序中如何运行的?

十一、异常处理

1.try catch finally(本身异常、线程死亡、停电了)

try后面必须跟catch或finally,不能啥都没有,三者语句块之间不能插入语句

2.异常分类(捕获、未捕获)

3.自定义异常:class myexception extends exception{(有参无参构造器各一个)},构造器不要加返回值类型

4.exception中常见方法:printStackTrace  toString   getMessage

十二、内部类

1.非静态内部类:Wai.Nei w = new Wai().new Nei();

2.局部内部类 :静态方法中的局部内部类想访问外部成员变量方法,必须是静态才行

3.静态内部类:不可直接访问非静态成员(内访外)(外访内无差)

外部类外访内部类:Wai.Nei.w = new Wai.Nei();

4.匿名内部类:

NeiFather nf = new NeiFather(){},创建时必须同时创建匿名内部类对象,匿名内部类初始化用非静态语句块。

例:Class NeiFather{int i;}

public class NeiBuLei{

psvm(S a){

{i=9;}

//方法重写之类的

}

}

十三、多线程

1.怎样定义线程和如何创建线程对象(各两种方法)

2.线程生命周期

3.线程调序(3) 睡眠  优先级  让步 分别如何用

4.main也是一个线程

十七、JDBC

Select [all | distinct][into new_table_name]

From[表名|视图名]

[where 搜索条件]

Group by

having

order by

2.事务处理

十八、IO流

1.数据流分两种:字节和字符。主要用四个抽象类表示:

2.按功能层次不同分为:

3.InputStream OutPutStream Reader Writer File.FileInputStream File.FileOutputStream FileReader FileWriter

十九、集合框架

1.java中主要由一组来操作对象的接口组成,不同接口描述一组不同数据类型,根据所包含对象不同可划分为collection和map。

2.列表

3.vector类

4.ArrayList

5.LinkedList

6.集合:Set接口及其子接口与实现这些接口的类叫集合,Set集合是一种不包含重复元素的Collection

7.Set接口,与list区别在于set中无重复元素

8.SortedSet接口

9.TreeSet类

10.HashSet类

11.映射 多级映射 map接口  HashMap类  TreeMap类

二十、网络编程

1.Tcp/Ip协议是一组以Tcp/Ip协议为基础的相关协议集合

2.C/S  B/S结构

3.IP  TCP  UDP区别

4.端口和套接字,Socket套接字,SerVerSocket类,1024 ,Socket类

/**

看完《21天学通java》自己总结的一些内容,

详细内容后面将java看作对象

按照类的形式进行面向对象分类整理

*/

21天java基础入门总结相关推荐

  1. Linux中的Java类,Java基础入门学习-Java中类的属性

    Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...

  2. JAVA 基础入门课本例题代码(第二章)

    JAVA 基础入门课本例题代码(第二章) Example01 public class Example01 {public static void main (String[] ags){int nu ...

  3. Java基础入门-详细总结

    Java基础入门知识总结 一.java基础 1.1 java基础知识 1.2java的基本数据类型 1.3运算符 1.4循环结构 1.5数组 二.面向对象 2.1方法 2.2面向对象 2.3内存管理 ...

  4. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  5. java基础入门课后习题_《Java基础入门》课后习题及答案

    <Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...

  6. 叮!您收到一份超值Java基础入门资料! 1

    Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家Java ...

  7. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,

    Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...

  8. Java 基础入门,小白提升路线图

    1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...

  9. 大数据必学Java知识(一):Java基础入门语法和安装

    Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...

  10. Java基础入门:IDEA软件安装和软件初始化设置

    IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量. 它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是I ...

最新文章

  1. 参与2011年7月13日举行的Azure国际猜拳锦标赛,赢取5,000美元大奖
  2. jquery实现开关灯
  3. MySQL中如何插入数据(DML)
  4. php判断ip地址小程序
  5. 牛客 - Gaming with Mia(dp)
  6. 2020年系统集成项目管理工程师下午真题
  7. iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
  8. Python 进阶 —— 使用 map reduce
  9. 全连接层和卷积层最终应用在网络上的不同之处
  10. Hive Tuning(三) 从查询计划看hive.auto.convert.join的好处
  11. VS Code 中文注释显示乱码
  12. matlab遗传算法选址(多约束条件)
  13. java中英文切换,Java实现多语言切换
  14. python开发:开源pytesseract文字识别
  15. c# 指定打开某个路径下的CMD_C# 插入、删除Excel分页符
  16. linu系统中dhcp的搭建
  17. [记录学习]自学动力节点荣姐SpringMVC5笔记
  18. Excel 筛选重复值和删除重复值的异同
  19. 一篇好文,在迷茫时阅读
  20. matlab学习笔记(四)

热门文章

  1. mysql 5.5 字符集_mysql 5.5字符集问题
  2. 如何查看IOS系统APP的包名
  3. zepto部分报错及解决方案
  4. MySQL 数据库性能优化之缓存参数优化
  5. 王者荣耀改重复名,空白名最低战力查询助手微信小程序源码下载
  6. html ztree选中状态,ztree-select.html
  7. 模糊规则优化matlab,遗传算法优化模糊pid控制规则
  8. c语言getch函数_在C / C ++中使用getch()函数
  9. JTAG Bypass命令案例解析
  10. 漏洞复现|CVE-2021-40444(Microsoft MSHTML 远程代码执行漏洞)