Java学习心得

# 学习java的背景

学习Java可以有助于提升自己编程能力,了解代码运行的过程和原理,学习过c语和c++的可以很好的了解java,这几种语言是相通的。

学习Java不可避免的要谈到Java背后的计算机和计算机语言的发展历史,但这不是重点所以按下不表。

## 编程中会用到的快捷键

这里选取几个个人感觉有用的结果快捷键命令:1.alt+F4窗口关闭命令 2.ctrl+A 全选 ctrl+C复制 ctrl+V粘贴 ctrl+V剪贴 ctrl+Z撤销 ctrl+S保存  win+r键 打开控制面板 win+e键打开我的电脑

### Dos命令

要进行Dos界面的命令需要先打开CMD

 Dos命令

 #### JDK与IDEA

学习Java就要要求系统配有Java语言的编译的环境和工具包,IDEA是不错的java语言集成编译环境

以下是IDEA的下载地址   JetBrains: Essential tools for software developers and teamshttps://www.jetbrains.com/

##### java运行的机制

1.编译型

可以简单理解为全局编译

2.解释型

可以简单理解为实时更新

以上两种是Java运行的两种机制,二者各有优缺点,这里暂时按下不表。

######## 注释---书写注释是良好的编程习惯

单行注释 //

多行注释 /*内

                     容        */

文档注释 /**  @author

*/

########## Java的数据类型

 long类型的在后面加L

float类型的在后面加F

在char关键字时使用只能使用一个字符,而string是字符串可以使用多个字符,且string不是关键字。

在使用数值进行比较时最好避免使用float类型数据,因为float类型具有有舍入误差的性质。

几种进制在Java中的表示

二进制0b

十进制 无特殊表示

八进制 0

十六进制 0x 

有数据类型就会有类型转换,以下介绍类型转换

 java运算中将不同类型转换为同一类型时,优先转换为更高一级的类型,这一现象称为’‘向上转换’‘

强制转换(由低等级到高等级转换)

自动转换(高等级到低等级转换)

强制转换的实质所有的字符本质还是数字

注意:1.不能对布尔型的值进行转换2.不能对两种数据类型的值进行转换(可以参考注意点1)3.强制转换时可能存在数据溢出。

在数据较大时可以使用下划线进行分割

位运算主要是对二进制的每一位进行运算的运算符
位运算有以下几种:&(与)、|(或)、^(异或)、~(取反)、<<(左移)、>>(右移)、>>>(无符号右移)
在c语言中0为假非0为真。
1.&(与)运算时都为0时表示都为假则结果仍然为0。0和1时有一个为假则结果仍未0,;两个都为1时则结果为1,以此类推,|(或)运算符的结果也可推算出来。
2.^(异或)运算符规则时如果运算对象相同位置的数字相同则为0否则就为1。
3.~(取反)运算符就是去运算对象的另一个数,即0就取1,1就取0。
实例:
a=0011 0011
b=0110 1001
a&b=0010 0001
a|b=0111 1011
a^b=0101 1010
~a=1100 1100
1.<<(左移)相当于将二进制数整体想左以,溢出的直接舍掉,空缺的用0补齐,左移n下表示乘2n。
2.>>(右移)相当于将二进制数整体想右移,溢出直接舍掉,因为二进制开头0表正数1表负数,所以当运算对象时正数时用0补齐,为负数时用1补齐,右移n下表示除以2n。
3.>>>(无符号右移)相当于在右移的基础上忽略正负的区别,一律用0补齐
 

Java的关键字和标识符

关键字

 ############ 变量、常量、作用域

示例

类变量

 类似于c中全局变量

常量(constant)

常量即初始化后不会再改变的值

可以理解为一种特殊变量,它的值设定后,在程序执行中不允许改变

示例

final 常量值=值

final double PI=3.14

常量一般大写

变量的命名规范

 ############### Java语法

1.package包的使用

类似文件夹,Java代码的存储和集中处理就可以放到包中方便管理。

包的语法格式时:package 包名;
如:package animals
包的命名规则:
1.包名全部用小写
2.如果包名有多个层次用 “.” 来分割
3.包名一般是倒置的域名,如www.baidu.com写成包的话就是com.baidu.www
4.自定义包不能·用java开头

一般使用import来导入某个包的类,
语法格式:import+包名+类名
如:import example.Text(用于导入包的指定类,例如这就是导入Text类)
import example,*(用于导入包的所有类)

2.Scanner的使用

scanner是Java中的一个工具类,我们可以通过scanner类来获取用户的输入

if选择结构

if(Boolean){
语句
//布尔表达式为true则执行
}

switch选择结构

switch(表达式){
case 常量1:
语句1
case 常量2:
语句2
break;
case 常量3:
语句3
default:
语句4
}

while循环结构

while(布尔表达式){
语句
//如果布尔值为true则执行
}

do while 循环结构

do{
语句
}while(布尔表达式);

注意do while 语句和while语句的区别

do while 先执行后判断

while 先判断后执行

for循环

语法:
for(初始化;布尔表达式;更新){
语句
}

加强for循环

加for循环是专门用来遍历数组和集合的
语法:
for(元素数据类型 变量:Collection集合或数组){
语句
}

break continue goto

break:break一般用于循环体中 ,可以控制循环的流程,当执行到break是会直接跳出循环,不执行下面的语句

continue:continue与break用法相似,但和break的区别是break直接跳出来循环,不执行之后的语句了,而continue则不同,它也会跳出循环,但它只是跳出来本次循环,它之后是仍然会执行这个循环的。

goto:可以简单理解为标签,在循环需要时跳到标签标志处。

Debug*:在程序的某一段运行停下,输出停下那段的结果。用来对程序进行调试,可以检查程序执行流程或追踪程序执行过程。
 

数组

数组的定义:

数组就是一个相同类型的有序集合,数组中的每一个元素称为数组元素,一个数组的数组元素类型一定是相同的,并且数组的排序一定也是有先后顺序的,每一个数组元素都可以通过下标来访问它们,数组也是个对象。

数组的声明:
数组的声明有两种形式
(1)数组类型 数组名 [ ] (c语言书写习惯)
(2)数组类型 [ ] 数组名 (Java书写习惯)

数组的创建:
数组类型 [ ] 数组名 = {em1,em2,em3,…,emN};(声明数组时初始化)
数组类型[ ] 数组名 = new 数组类型[ ] (new关键字声明数组的同时初始化)
数组类型[ ] 数组名 = new 数组类型[N ] (new关键字声明数组时指定数组长度)
注意:数组声明之后长度不可改变,改变的可以是里面的数组元素,获取数组长度arrys.length,
数组未被赋值时,默认值为0。

数组边界问题:
数组的下标是从0开始的,所以他的下标区间是0~length-1,下标不能够越界,越界会报错

二维数组

二维数组就是一维数组的每一个数组元素都是一个一维数组,相当于是数组的数组

二位维数组的声明
数组类型 [ ][ ]数组名

Arrays类

arrys类主要存在于java.util包中,包含数组的各种方法。使用时导包:import java.util.Arrays

方法定义

方法是语句的集合,用于实现某种功能,它包含在对象或着类中,方法先被创建,而后在其它地方被调用,类似与c和c++中的函数。

面向对象

面向对象就是将一件要做的事情先分类,然后再每一个类下面再具体去实现,从而达到完成这件事的目的。
面向对象和面向过程的区别是面向过程没有这个分类的阶段,直接开始做。

面向对象的特性:封装、继承、多态
类与对象的创建

类就是具有共同属性对象的集合,对象是类的具体实例

创建和初始化对象

(1)使用new关键字来创建对象。
(2)在使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用。

封装

封装就是将类的属性与方法隐藏起来,不会被直接找到,一般会用private来修饰它,他的使用范围在同一个包的同一个类中使用,一般如果需要调用封装好的函数需要通过get和set来实现,set是给属性赋值的,get是取得属性值的。

继承

继承就是子类继承父类的特征和行为,使得子类获得父类的实例或方法,继承一般用关键字extands,继承的是子类,被继承的是父类,Java中只有单继承没有多继承。

多态

多态就是同一间行为通过不同的事物可以表现出不同的形态

多态存在的前提

(1)存在继承或者实现关系
(2)子类或实现类必须重写父类方法
(3)父类引用指向子类对象

super与重写

super

super 关键字可以在子类的构造方法中显式地调用父类的构造方法,基本格式如下:

super(parameter-list);

重写

子类在继承父类之后可以对父类中同名同参数的方法,进行覆盖操作。
子类中的叫重写方法,父类中的叫被重写方法。

抽象类与内部类

顾名思义内部类就是在其它方法和其它类内部定义的类

作用:实现类的重用功能,实现多重继承,增强封装

抽象类

用abstract修饰的类就叫抽象类,抽象类无法实例化,不能直接使用new关键字来生成对象

接口

有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果,接口是抽象方法和常量值的定义的集合

异常

异常是在程序执行期间发生的事件,中断正在执行的程序的正常指令流。

Error 是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。

处理异常的机制

抛出异常和捕获异常
java异常处理的方式:
方式一: try-catch-finally(捕获)
方式二: throws + 异常类型(抛出)

异常处理关键字:try、catch、finally、throw、throws

########################## 总结

1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)。

2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。

3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。

4. 在 Java 的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息 加以整理,促进学习的深入和知识水平的提高。

看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够,希望自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起

到作用。在学习java语言的同时,也让我学会了如何来发现问题,如何解决问题,怎样有效的学习等等,相信会对我一生都有用

############################
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值