JAVA-入门(内含jdk配置)


title: java入门
date: 2019-07-21 19:50:19
tags: java学习
top: 1

JAVASE学习


1.java入门

More info: Writing //超链接

2.java开发环境配置

第一步是配置本地开发环境,学习最基本的桌面开发,下面以win10为例配置Java开发环境,即:JDK+JRE+idea,安装JDK的时候会默认安装JRE,根据提示安装就可以了。
首先去官网下载适合系统版本的JDK,下载地址:JDK下载-官网选择版本后点击Download,这里下载的JDK8,然后一直下一步,路径默认最好(记住路径后面要用);

[外链图片转存失败(img-xjKkZKy3-1564822527659)(/C:\Users\薛艳春\Desktop\4.jpg “Optional title”)]
JDK安装完成后配置环境变量

    1. 右键我的电脑-属性-搞基系统设置-高级-环境变量2.在系统变量栏-新建变量名输入:JAVA_HOME变量值为你的安装路径,我这里填:C:\Program Files\Java\jdk1.8.0_45(这是默认路径,直接复制可能版本不同,文件名不同)然后单击"确定"按钮。3.同样操作我们新建变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar(此处可以直接复制粘贴过去用,别忘了最前面的".")4.找到Path选项,这个已经存在(**不要自己创建**),单击"编辑",在最后输入:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin5.现在设置完毕,最后单击"确定"保存所有设置,然后再次单击"确定"退出系统属性。6.测试一下,运行cmd,分别输入:java -version,java,javac可以看到结果说明JDK安装并配置完毕。

3.java基础语法

java基础语法学习详情见菜鸟教程 跟着学习,一定要自己敲,别复制粘贴,多敲代码

4.java流程控制

4.1选择结构1if-else(选择结构学习)


4.1.1 条件语句 - if…else

一个 if 语句包含一个布尔表达式和一条或多条语句。

语法:

if(布尔表达式)
{//如果布尔表达式为true将执行的语句
}

如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。

4.1.2 if…else语句

if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。

语法如下:

if…else 的用法如下:if(布尔表达式){//如果布尔表达式的值为true
}else{//如果布尔表达式的值为false
}
4.1.3 if…else if…else 语句

if 语句后面可以跟 else if…else 语句,这种语句可以检测到多种可能的情况。

使用 if,else if,else 语句的时候,需要注意下面几点:

if 语句至多有 1 个 else 语句,else 语句在所有的 else if 语句之后。
if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
语法

if…else 语法格式如下:

if(布尔表达式 1){//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){//如果布尔表达式 3的值为true执行代码
}else {//如果以上布尔表达式都不为true执行代码
}

#####4.1.4 嵌套的 if…else 语句

使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。

语法
嵌套的 if…else 语法格式如下:

if(布尔表达式 1){如果布尔表达式 1的值为true执行代码if(布尔表达式 2){如果布尔表达式 2的值为true执行代码}
}你可以像 if 语句一样嵌套 else if...else。

下面链接都是来自菜鸟教程


4.2选择结构2 switch case 语句

4.3循环结构 - for, while 及 do…while

5.面向对象

5.1 --[继承]

5.2重写(Override)与重载(Overload)


5.3多态

多态:(父类引用指向子类对象)
向上转型:Animal am = new Cat(); 从父类的角度思考,只有继承后的子类方法才 可以使用,并且是使用的子类的

向下转型:Cat ct = (Cat)am; 从子类的角度思考,自己有的调用自己的,自己没有 的继承父类的方法来用;


5.4抽象类 abstract修饰

1.抽象类是父类,子类必须实现抽象类的抽象方法,子类不想实现父类抽象方法的话,必须把子类设置成抽象方法(用abstract修饰)也就是:抽象类的子类1.要么是抽象类,要么重写抽象类的所有抽象方法。
2.(不可以用final修饰,需要依赖子类去创建对象(final与abstract是不共存的))

5.5封装

####5.6 –接口
接口的方法默认是abstract public的,JDK8以后可以有用default和static修饰的方法并且可以不用子类实现(重写)。
接口定义的成员变量只能是常量,默认用public static final 修饰的。
用子类实例化接口,对象不能调用接口的静态方法.

####5.7 –包package

6.常用API

6.1 API 1.6中英文百度云连接-点击打开 密码:q7mc

6.2 object类:

类层次结构的根类,所有类都直接或间接继承object类,(自己创建的类也默认继承object)
6.2.3 成员方法:
public int hasCode(); 根据地址值经过一系列运算得到一个int值,hashCode值不同,代表他们
肯定不是同一个对象,hashCode相同,也不一定是相同对象,hashCode方法要配合equls方法使用,来
判断两个对象是否是同一个对象,hashCode方法效率高,运行快。public final Class getClass(); 返回Class对象,字节码对象,通过该对象可以获得类中的所有信息。public String toString(); 返回String类型,默认的实现方式是全类名@地址值,如果不满意,可以重
写String类就重写了object的toString();public bolean equals(Object obj);  1指示其他某个对象是否与此对象“相等”,默认的实现方式是==
==:比较基本数据类型的时候,比较的是值是否相等。:比较的引用类型的时候,比较的是地址值。(引用类型有:Class,数组,abstract)如果不想比较对象的地址值,而且认为如果两个对象的属性值相同,可以重写equals()方法,让他比较的是属性值,一般equals和hashCode是一对,重写的时候一定要重写hashCode(右键-source-geberate equals and hashCode)protected Object clone();  创建并返回此对象的一个副本,这种克隆机制十分高效,而二者之间完全隔
离。自定义类实现克隆步骤:
A:自定义类实现Cloneable接口,使其具备克隆的能力,否则会产生不支持克隆的异常
B:自定义类中重写Object类的clone()方法,将其写成public修饰的,方便在外部使用。
C:重写clone()方法时通过suoer.clone()调用Object类的clone()方法来得到该对象的副本,并回该副本
(此时会产生一个异常,直接向上抛出,抛出后在main方法里也会产生异常,继续向上抛,会抛给jvm处理)
D:可以在外部类中,使用对象调用clone()方法产生一个object类型的副本,可以通过instanceof来判断该
副本的类型。
E:使用clone产生的副本和原来的地址是不同的
F:使用clone产生的副本,是一个浅拷贝:原本中引用数据类型和副本中的引用数据类型的地址值相同。

6.3 Scanner类(用于获取用户键盘输入)

6.3.1 成员方法
nextXxx(); 获取下一个输入项。Xxx可以是int,Double。nextLine()可以接收到用户输入的回车空格
等字符。hashNextXxx();判断是否还有下一个输入项目其中Xxx可以是int,Double等,如果需要判断是否包含下一
个字符串,可以省略Xxx。默认情况下,Scanner使用回车或者空格作为结束标记。也可以使用useDelimiter()方法进行修改。括号里
加上结束标记符。

6.4 String类

6.4.1 构造方法:
public String();
public String(byte[] bytes);
public String(byte[] bytes,int offset,int length)
public String(char[] value);
public String(char[] value,int offset,int count);
public String(String original);
6.4.2 成员方法
.1 String的内存图在这里插入图片描述

在这里插入图片描述

.2 判断功能
boolean equals(Object obg) 比较字符串的内容boolean equalsIgnoreCass(String str) 忽略大小写比较字符串的内容(验证码)boolean contains(String str) 是否包含boolean startsWith(String str) 是否以。。。开头boolean endsWith(String str) 是否以。。。结尾boolean isEmpty() 是否是空串
.3 获取功能
int length(); 获取字符串的长度char charAt(int index) 返回索引所对应的字符int indexOf(int ch) 返回 ch所代表的第一次字符,出现的索引值,如果不存在则返回-1 int indexOf(String str) 返回参数字符串第一次出现的索引值,没有返回-1int indexOf(int ch,int fromIndex) 返回字符从fromIndex之后第一次出现的索引值,不存在返回-1String substring(int start)  字符串的截取,从start到最后,包含startString substring(int start,int end) 字符串截取,从start到end包含start,不包含end。
.4 转换功能

在这里插入图片描述

.5 替换功能

在这里插入图片描述

.6 StringBuffer (线程安全的可变字符序列)(StringBuilder是线程不安全的)
我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可
以解决。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

StringBuffer与String的相互转换:StringBuffer 和String的相互转换:

StringBuffer 转成String:

 toString();

String 转StringBuffer:用构造方法

new StringBuffer(String s);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.集合 –集合框架

7.1 概述:面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,JAVA就提供了集合类

7.2 数组与集合的区别 :

①数组虽然也可以存储对象,但是长度是固定的;集合长度是可变的。
②数组中可以存储基本数据类型,集合只能存储对象。

7.3 特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

7.4 Java中集合类的关系图(牢记心中)

 ![“集合类的关系图”](/images/集合类的关系图.png)

7.5 Hash表

8.IO流 –IO流-JAVA流-文件(File)

9.多线程 –多线程编程

10.反射

11.java综合编程实践

(电影评分系统统计、归属地查询统计、分布式案例等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437741.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】EF三种编程方式的区别Database first ,Model first ,code first

首先对于EF中先出现的datebase first和model first两种编程方式,其的区别根据字面意思很容易能够理解。 datebase first就是代表数据库优先,那么前提就是先创建数据库。 model first就是代表model优先,那么前提也就是先创建model&#xf…

【转】学习Entity Framework 中的Code First

这是上周就写好的文章,是在公司浩哥的建议下写的,本来是部门里面分享求创新用的,这里贴出来分享给大家。 最近在对MVC的学习过程中,接触到了Code First这种新的设计模式,感觉很新颖,并且也体验到了这种方式…

HDFS--分布式文件系统

HDFS–分布式文件系统 1.Hadoop生态系统简介 2.HDFS基本架构 3.HDFS的核心原理 4.shell命令行操作 5.JAVAAPI的操作 6.HDFS集群运维与调优经验

Hbase搭建-基于hadoop3--并且解决了hbase error: KeeperErrorCode = NoNode for /hbase/master错误

Hbase搭建-基于hadoop3 habse搭建在下面。。上面写有一些我遇到的很烦躁的错误,捣鼓了两天!!! **别用hadoop3** 经过几天的奋战,开始用的hadoop3.2.0,hbase-2.2.0, Hmaster启动后几秒后被杀…

Python 数据分析三剑客之 Matplotlib(一):初识 Matplotlib 与其 matplotibrc 配置文件

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

hadoop分布式集群搭建,包含网络配置-hadoop3环境

先准备三台或者五台虚拟机(我这里写三台,实际我用的五台) 在安装centos时可以在选择(最小安装还是图形化界面处)有配置网络的,把网络先配置好,这样就不需要在重新配置了 先配置一台主机&#…

Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】C++/CLI入门系列 第二篇:封装C++ dll库,提供接口给C#调用

看了第一篇感觉没啥用对吧,来点稍微有用的。 1、先建个c#工程,依次 file -> new -> project,选择 visula c# -> console application,写工程名,点 ok。 2、再建个c dll工程。依次 file -> add -> new …

Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

zookeeper完全分布搭建-安装-配置

我这里是用的五台机器。 官网下载解压zookeeper,这里用的3.4.6 解压到/usr/local下 修改配置文件 1- 首先进入到zookeeper-3.4.6下的conf文件夹下 cd /usr/local/zookeeper/zookeeper-3.4.6/confls查看文件,然后拷贝zoo_sample.cfg并重命名为zoo.cf…

Python 数据分析三剑客之 Matplotlib(四):线性图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hbase error: KeeperErrorCode = NoNode for /hbase/master错误

Hbase运行hbase shell输入status与list测试会报错error: KeeperErrorCode NoNode for /hbase/master 经过两天的不挺找错,更改,解决,出现这个错误的原因是hadoop与Hbase版本不兼容所致。 别用hadoop3 经过几天的奋战,开始用的…

Python 数据分析三剑客之 Matplotlib(五):散点图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

hadoop集群-格式化namenode节点后,从节点的datanode不能启动,或者是datanode启动到主节点上。

进行二次namenode格式化前,请注意: hadoop namenode -format进行着一步前,要把以前格式化的内容删掉,如果,你的路径是在hadoop文件夹内,那么直接格式化即可,如果是在外部创建的文件夹&#xff…

Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive环境搭建(完整版)-配置

Hive部署: 前提: 在安装Hive之前,要求先预装: - 安装JDK 8 - 安装Hadoop-2.7.7 - 安装MySQL 5.6.x!!!我这里主节点叫chun1,根据自己的进行修改 一、安装 1. 下载hive&#xff0c…

Magento微信支付接口开发小记

姗姗来迟的Magento微信支付接口插件 半年之前,有朋友网站需要接入微信支付,是Magento站,于是花费了近二周时间,研究微信开发文档、示例代码,并初步制作了个支付模块,不巧的是,朋友的微信支付接…

VMware安装出错-无法安装服务“VMware Authorization Service”,请确保您有足够的权限安装系统服务;centos7网络服务不可用,主ip地址:网络信息不可用

今天遇到一个bug,VMware突然网络服务不可用了,虚拟机里右上角有网络但是点开不显示网络的连接信息。也不能上网,不能ping通外网(百度) VMware下显示 主ip地址:网络信息不可用 尝试了重启网络,重…

Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

访问网络共享时出现“拒绝访问”

今天公司副总说要我连接一下前面的打印机,二话不说,屁颠屁颠的就到现场了。虽然是简单的活,但也得去不是。 到老总计算机上 开始--运行 \\192.168.0.45 (装有打印的计算机,OS是XP系统!) 结果出…