java程序语言基础一课一得

学习java程序语言基础的心得

在开始学习Java程序基础时,我感受到了编程世界的无限魅力。Java作为一门广泛应用的编程语言,不仅拥有强大的跨平台能力,其简洁的语法和丰富的API也让我对编程产生了浓厚的兴趣。

学习过程中,我首先掌握了Java的基本语法,如变量、数据类型、运算符、流程控制等。这些基础知识是编写Java程序的基础,它们帮助我理解了程序是如何一步步执行和产生结果的。

接着,我学习了Java的面向对象编程特性,包括类、对象、继承等。这些概念在初学时有些抽象,但通过不断的实践和思考,我逐渐理解了它们的作用和重要性。面向对象编程不仅提高了代码的可读性和可维护性,也增强了程序的可扩展性。

在学习过程中,我也遇到了一些困难。例如,在理解一些复杂的概念时,我会感到困惑和挫败。但是,通过查阅书籍、观看视频教程和与同学交流讨论,我逐渐克服了这些困难,并取得了进步。

此外,我还发现编写Java程序需要耐心和细心。一个小的语法错误或者逻辑错误都可能导致程序无法正常运行。因此,在编写代码时,我需要仔细检查每一个细节,确保代码的正确性。

Java基础知识总结

Java语言的特点

1.面向对象

面向对象是Java语言的基础。
java语言提倡“万物皆对象”,语法中不能在类外面定义单独的数据和函数。
Java语言最外部的数据类型是对象,所有的元素都要通过类和对象来访问。

2.简单好用

Java 语言的语法与 C 语言和 C++ 语言很相近,使得很多程序员学起来很容易。
Java使用接口取代了多重继承,并且取消了指针,因为多重继承和指针会使程序变得复杂。
Java还会自动地收集内存垃圾,使得内存管理变得更为简单。
Java还提供了丰富的类库、API文档以及第三方开发包,还有大量Java的开源项目。

3.分布性

Java 语言支持 Internet 应用的开发。
在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。
Java 的 RIM 机制也是开发分布式应用的重要手段。

4.平台无关性

平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是Java 的虚拟机机制。
在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。。

5.支持多线程

在Java语言中,线程是一种特殊的对象,它必须由 Thread 类和它的子类来创建。
Java 支持多个线程同时执行,并提供多线程之间的同步机制。 任何一个线程都有自己的 run() 方法,要执行的方法就写在run() 方法体内。

Java执行流程

Java语法基础

Java数据类型

程序在执行时需要用到一些临时数据,而程序必须对它们进行临时存储。这些数据将会存储在变量中,所以可以将变量看成存储箱。这些存储箱有不同的容量和形状(称为数据类型),以供存储不同的数据。

基本数据类型

基本数据类型包括整数类型、浮点类型、字符类型和布尔类型
整型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean

数据类型所占字节表示范围
byte(字节类型)1-128~127
short(短整型)2-32768~32767
int(整型)4-2147483648~ 2147483647
long(长整型)8-9223372036854775808~ 
9223372036854775807
float(单精度)4±1.5×10-45~3.4×1038
double(双精度)8±5.0×10-324~1.7×10308
char(字符)2一个字符
boolean(布尔)1trun 或 false

String类型

String类型用于表示任意长度的字符串。属于引用类型。字符串常量用双引号引起来。

类型描述取值范围存储空间
String字符串任意长度的字符串不定

常量

在程序运行的整个过程中,其值始终不可改变的量称为常量。例如,数字100就是一个常量,这样的常量一般被称作常数。
常量在整个程序中只能被赋值一次。
可以通过关键字final来声明常量,格式如下:
 final 数据类型 常量名 = 表达式;
 如:
 final double PI=3.14159265;
 final int FOUR=4;
 FOUR=15; //错误,赋值两次了

在程序运行的整个过程中,其值可以变化的量称为变量。变量是用来存储数据的,不同的数据需要用不同的变量来存储,因此每个变量都具有一个类型,以确定哪些值可以存储在该变量中。程序在运行时,需要根据变量的数据类型为变量分配内存。
采用如下格式定义一个变量:
 数据类型 变量名[=表达式];
注意:任何变量在使用前,必须先定义,后使用。如:
int myVariable;
String name;如果几个变量为同一类型,允许一起定义。double d1,d2,d3;

初始化变量

整数类型:byte(字节类型)、short(短整型)、int(整型)、long(长整型)
整数可以3种表示形式: 十进制 如 10 , -19
八进制:以0开头的数 如015 047
十六进制:以0x开头的数 如0xAB 0x47
如:
int num1=10
short num2=018;//八进制,相当十进制16
int num3=0x22;//十六进制,相当十进制34

浮点数据类型: float(单精度)和double(双精度)
double score1=5.648;
float score=9.54; //编译错误
float score=9.56f;
注意:对于一个小数,其默认类型都是double类型,也可以添加D或d后缀。如果需要指定为float类型,必须在小数后面 添加F或f后缀。
除了采用小数点形式外,也可使用指数形式: double money=1.2e4; //e4表示10的4次方 float num=1.2e-2f;//e-2表示10的-2次方

boolean数据类型:为true或false

boolean flag1=true; //正确 boolean flag2=false; //正确
boolean flag3=(9>8); //正确,(9>8)的运算结果为true 
boolean flag4 = 123; //错误,123不是逻辑值
boolean flag5 = "abc"; //错误, "abc"为字符,不是逻辑值
char数据类型
单引号括起来的单个字符 如 'a', 'A‘
char m_myChar1='a';
转义字符:是一种特殊的字符,以“\”开头。

程序举例一

定义常量PI为3.14,定义变量r(半径)为5,根据公式:面积=半径*半径*PI,计算并输出圆的面积。

public class AreaOfCircle {
    public static viod main(String[] args) {
        final double PI=3.14; //声明常量PI,值为3.14
        int r=5;//声明变量r,值为5
        double area=r*r*PI;//根据公式计算面积,然后赋值给变量area
        System.out.println("半径为5的圆面积为:"+area);//输出结果
    }
}

程序举例二

定义两个整形变量,值任意,输出这两个变量的和、差、乘积及商。

public class AreaOfCircle {
    public static viod main(String[] args) {
        int num1=5;//定义变量num1,值为5
        int num2=3;//定义变量num2,值为3
        System.out.println("和为:"+(num1+num2));//输出和
        System.out.println("差为:"+(num1+num2));//输出差
        System.out.println("积为:"+(num1+num2));//输出积
        System.out.println("商为:"+(num1+num2));//输出商
    }
}

数据类型转换

类型转换

Java中基本类型可以进行混合运算,不同类型的数据在运算过程中,首先会自动转换为同一类型,再进行运算。

数据类型根据占用存储空间的大小分为高低不同的级别,占用空间小的级别低,占用空间大的级别高。

隐式类型转换

任何数值类型A只要其取值范围完全包含在类型B的取值范围之内,就可以实现隐式类型转换。

隐式类型转换表

源类型目的类型
byteshort、int、long、float、double
shortint、long、float、double
intlong、float、double
longfloat、double
floatdouble
charint 、long、float、double

显式类型转换

把取值范围大数据转换为取值范围小的数据的过程即为显式类型转换(可能丢失信息)

数值型转换为字符串

数值型数据转换为字符串用String.valueOf()方法即可实现。如:

int num1 = 10;
String mynum= String.valueOf(num1); //将int类型转换为字符串

字符串转化为数值型

字符串数据转换为数值型使用parseXxx()方法。

字符串转换为整型:

Byte .parseByte(String)
Short .parseShort(String)
Integer.parseInt(String)
Long.parseLong(String)
例如:
String str = "13";
int number = Integer.parseInt (str); //将字符串转换为int类型

字符串转换为单精度浮点型:

Float.parseFloat (String); 
例如:
String str = "15";
float number = Float.parseFloat (str);

选择结构

if分支语句

程序流程有三种基本的控制结构,即顺序结构、选择结构和循环结构。

第一种形式                    第二种形式                        第三种形式
                             

switch多分支语句

switch结构也是多分支结构,它通过switch 表达式的值与多个不同值进行比较,选择相应的case语句来处理多个选择。

switch后的表达式为整型(long除外)、字符型、字符串和枚举类型。
当表达式的值与case后的常量表达式的值相等时,则执行该case后的语句序列。执行完后退出switch语句,跳转到整个switch语句之后的下一个语句执行。如果所有的case语句的常量表达式的值与switch之后的表达式不匹配,则执行default之后的语句序列。
各case语句之后的常量表达式的值不能相同。
如果某个case语句最后的break语句被省略,则执行完该case语句之后,系统则会继续执行下一个case语句。
多个case语句可以共用一组执行语句


循环结构

一维数组

什么是数组

在执行程序的过程中,经常要存储大量相同类型的数据。
如:要读入100个数,计算平均值,然后找出有多少个数大于平均值。
(1)程序读入这些数并计算它们的平均值
(2)将每个数与平均值进行比较判断它是否大于平均值。
为了完成任务,必须将全部数据存储到变量中。声明100个变量,重复写书100次几乎完全相同的代码,这个方式是不现实。

Java和其他编程语言一样提供了数组来存储这些数据。

数组是一组具有相同类型和名称的变量的有序集合。
组成数组的这些变量称为数组的元素,一个数组可以含有若干个元素。
下标也叫索引(Index),用来指出某个元素在数组中的位置。
数组中第一个元素的下标默认为0,第二个元素的下标为1,依次类推。如果某一数组有n个元素,则其最大下标为n 1。

foreach循环

foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,任何的foreach语句都可以改写为for语句。foreach不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。

for与foreach比较异同点

for与foreach均能对数组进行遍历
for通过变换数组下标的形式访问数组元素,因此可改变数组元素的值foreach通过迭代变量的形式读取数组元素,故不能改变数组元素的值。

二维数组

二维数组的创建

语法格式:
数据类型符[ ][ ] 数组名 = new 数据类型符[长度1] [长度2] ;

或者
数据类型符[ ][ ] 数组名;
数组名=new 数据类型符[长度1] [长度2] ;

二维数组的初始化

为数组元素赋初值的语法形式:
 数据类型符[][] 数组名=new 数据类型符[][]{ {初值列表1},…, {初值列表n}}
 数据类型符[][] 数组名={ {初值列表1},…, {初值列表n}}


对象与类

对象:对象是表示现实世界中某个具体的事物。它由描述事物的属性和体现事物的行为构成一个独立整体。

类:在面向对象编程中,类是具有相同属性和行为的一组对象的集合。它提供一个抽象的描述,其内容包括属性和行为两个主要部分。

抽象:抽象是通过特定的实例抽取共同特征以后形成概念的过程。抽象化主要是为了降低复杂度,是面向对象思想的本质。

类是对象的概括或者抽象,对象是类的实例化。

面向过程与面向对象编程

面向对象的三大特征

封装:是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

继承:主要是描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。

多态:指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为。

对象(object)与类(class)

对象与类的关系
 
在面向对象程序设计中,每个对象都是通过类来创建的,因此在创建对象前必须先创建类。
 可以把类看做模型,创建类就是创建模型,有了类模型才可以利用它来创建对象。例如,汽车制造厂要生产汽车,则先要打造一个汽车的模型(定义类),然后再以此模型制造出相应的汽车(创建对象)。

类的定义及对象的创建


抽象类

抽象类:含有一个或一个以上的抽象方法的类。

抽象类中可以包含有一般方法,也可以包含有抽象方法。
抽象类只能作为基类,它本身不能实例化。
如果抽象类的子类不能实现所有的抽象方法,那么子类也必须定义为抽象类。即抽象类派生的非抽象子类,必须实现所有抽象方法。

抽象类使用示例


接口

在Java中接口不仅仅是程序开发过程中“约定”,更是更加抽象化的抽象类。

接口的作用:

  • 提高程序的重用性
  • 提高程序的可扩展性
  • 降低程序的耦合度
  • 实现了多继承​​​​​​​

接口和抽象类都是用来定义对象的公共行为的,但二者有以下 7 点不同:

  1. 定义的关键字不同。
  2. 子类继承或实现关键字不同。
  3. 类型扩展不同:抽象类是单继承,而接口是多继承。
  4. 方法访问控制符:抽象类无限制,只是抽象类中的抽象方法不能被 private 修饰;而接口有限制,接口默认的是 public 控制符。
  5. 属性方法控制符:抽象类无限制,而接口有限制,接口默认的是 public 控制符。
  6. 方法实现不同:抽象类中的普通方法必须有实现,抽象方法必须没有实现;而接口中普通方法不能有实现,但在 JDK 8 中的 static 和 defualt 方法必须有实现。
  7. 静态代码块的使用不同:抽象类可以有静态代码块,而接口不能有。
    ​​​​​​​ 

总结

总之,学习Java程序基础是一个既具有挑战性又充满乐趣的过程。通过不断学习和实践,我逐渐掌握了Java的基础知识并体会到了编程的乐趣和成就感。我相信在未来的学习和工作中,我会继续深入学习Java和其他编程语言,不断提升自己的编程能力和技术水平。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值