21天java基础入门总结
学完了《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基础入门总结相关推荐
- Linux中的Java类,Java基础入门学习-Java中类的属性
Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...
- JAVA 基础入门课本例题代码(第二章)
JAVA 基础入门课本例题代码(第二章) Example01 public class Example01 {public static void main (String[] ags){int nu ...
- Java基础入门-详细总结
Java基础入门知识总结 一.java基础 1.1 java基础知识 1.2java的基本数据类型 1.3运算符 1.4循环结构 1.5数组 二.面向对象 2.1方法 2.2面向对象 2.3内存管理 ...
- 叮!您收到一份超值Java基础入门资料!
摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...
- java基础入门课后习题_《Java基础入门》课后习题及答案
<Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...
- 叮!您收到一份超值Java基础入门资料! 1
Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家Java ...
- JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,
Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...
- Java 基础入门,小白提升路线图
1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...
- 大数据必学Java知识(一):Java基础入门语法和安装
Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...
- Java基础入门:IDEA软件安装和软件初始化设置
IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量. 它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是I ...
最新文章
- 参与2011年7月13日举行的Azure国际猜拳锦标赛,赢取5,000美元大奖
- jquery实现开关灯
- MySQL中如何插入数据(DML)
- php判断ip地址小程序
- 牛客 - Gaming with Mia(dp)
- 2020年系统集成项目管理工程师下午真题
- iis7.5 php虚拟站点目录设置,windows2008中IIS7.5环境下 Fastcgi模式PHP配置教程
- Python 进阶 —— 使用 map reduce
- 全连接层和卷积层最终应用在网络上的不同之处
- Hive Tuning(三) 从查询计划看hive.auto.convert.join的好处
- VS Code 中文注释显示乱码
- matlab遗传算法选址(多约束条件)
- java中英文切换,Java实现多语言切换
- python开发:开源pytesseract文字识别
- c# 指定打开某个路径下的CMD_C# 插入、删除Excel分页符
- linu系统中dhcp的搭建
- [记录学习]自学动力节点荣姐SpringMVC5笔记
- Excel 筛选重复值和删除重复值的异同
- 一篇好文,在迷茫时阅读
- matlab学习笔记(四)
热门文章
- mysql 5.5 字符集_mysql 5.5字符集问题
- 如何查看IOS系统APP的包名
- zepto部分报错及解决方案
- MySQL 数据库性能优化之缓存参数优化
- 王者荣耀改重复名,空白名最低战力查询助手微信小程序源码下载
- html ztree选中状态,ztree-select.html
- 模糊规则优化matlab,遗传算法优化模糊pid控制规则
- c语言getch函数_在C / C ++中使用getch()函数
- JTAG Bypass命令案例解析
- 漏洞复现|CVE-2021-40444(Microsoft MSHTML 远程代码执行漏洞)