学习一门新语言

详解“==”和equals的区别 详解“==”和equals的区别一、“==”二、equals()三、栗子和解释说明3.1栗子3.2基本数据类型的比较3.3引用数据类型的比较3.3.1String类3.3.2未重写equals方法的类四、练手栗子 “==”和equals 最大的区别是 “==”是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值。 equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值。 一、“==” “==”是运算符 ①如果比较的对象是 阅读详情

目前,我仅仅在大一学习了c语言,可是对于一个程序员来说,快速掌握一门计算机语言是一种基本能力,最近,我自学了Java。

如何学习

现如今网络十分发达,学习资料在网络上应有尽有,对于我来说,快速掌握一门知识的方法就是利用视频资料入门,再利用搜索引擎精准解决自己的问题。对于完全陌生的东西,是很难自己独自入门的,这时候视频的细致讲解能很好地帮助我们快速了解这门知识的体系,以便于后期的学习。当我们对知识体系有个大致的了解后,就不能只依靠视频来学习了,因为视频学习效率低下,不能精准地解决问题。这时候最快捷的方式,是自己上手实践,在实践中遇到问题,解决问题。

图灵完备

在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完备的。这个词源于引入图灵机概念的数学家艾伦·图灵。

简单的说,图灵完备就是一个标准,理论上讲任何一个编程语言只要是图灵完备的,就可以实现一切可编程工作。具体的就是该语言能否模拟单带图灵机。
如果语言符合图灵完备,那么该语言理论上能实现任何功能,但是解决问题的效率存在很大的差异,此时就需要选择合适的语言解决合适的问题。

Java

Java简介

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。
后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Oracle 公司的产品。

Java分为三个体系:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。

主要特性

  • Java 语言是简单的:

Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。

  • Java语言是分布式的:

Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。

  • Java语言是安全的:

Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。

  • Java 是高性能的:

与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。

  • Java 语言是动态的:

Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。

Java基础语法

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名- 字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

第一个Java程序

下面看一个简单的 Java 程序,它将输出字符串 Hello World

实例

public class HelloWorld {
    /* 第一个Java程序
     * 它将输出字符串 Hello World
     */
    public static void main(String[] args) {
        System.out.println("Hello World"); // 输出 Hello World
    }
}

下面将逐步介绍如何保存、编译以及运行这个程序:

打开代码编辑器,把上面的代码添加进去;
把文件名保存为:HelloWorld.java;
打开 cmd 命令窗口,进入目标文件所在的位置,假设是 C:
在命令行窗口输入 javac HelloWorld.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行(假设环境变量都设置好了)。
再键输入 java HelloWorld 按下回车键就可以运行程序了
你将会在窗口看到 Hello World

$ javac HelloWorld.java
$ java HelloWorld 
Hello World

如果遇到编码问题,我们可以使用 -encoding 选项设置 utf-8 来编译:

javac -encoding UTF-8 HelloWorld.java 
java HelloWorld 

基本语法

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首- 字母应该大写,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。

Java 标识符
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

Java 标识符

Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符
关于 Java 标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

Java修饰符

像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final, abstract, static, synchronized
  • 在后面的章节中我们会深入讨论 Java 修饰符。

Java 变量

Java 中主要有如下几种类型的变量

  • 局部变量
  • 类变量(静态变量)
  • 成员变量(非静态变量)
  • Java 数组
  • 数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。

继承

在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。

利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(subclass)。

接口

在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。

接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

Java中的对象

  • 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。

对象:
拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。

对比现实对象和软件对象,它们之间十分相似。

软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。

在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

Java 中的类
类可以看成是创建 Java 对象的模板。
在这里插入图片描述

通过上图创建一个简单的类来理解下 Java 中类的定义:

public class Dog {
    String breed;
    int size;
    String colour;
    int age;
 
    void eat() {
    }
 
    void run() {
    }
 
    void sleep(){
    }
 
    void name(){
    }
}

一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
    一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法。
==和equals的区别 1)对于==,比较的是值是否相等 如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法 ,注意:equals方法不能作用于基本数据类型的变量,equals继承Object类,比较的是是否是同一个对象 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容 ... 阅读详情

相关推荐

==和equal的区别

==:当比较数据类型为数值类型的时候,比较的是值;当被比较对象为引用传递的时候,比较的是地址值 equals:比较的是指向的对象的值 如果使用的类对equals方法进行重写的话,使用重写过后的方法。比如String public boolean equals(Object anObject) { //判断是否地址值相等 if (this == anObject) { return true; } //判断内容是否相等

嘻嘻嘻 234

==号和equals()方法的区别

共同点: 都可以作比较 返回值都是boolean 区别: ==号是一个比较运算符,既可比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值 equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,也是比较地址值,重写...

汐小旅Shiory 407

== 和equals的区别

1.基本概念区分 (1): 对于==,比较的是值是否相等。 如果作用于基本数据类型的变量,则直接比较其存储的 值是否相等, 如果作用于引用类型的变量,则比较的是所指向的对象的地址是否相等。 通俗理解:其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是引用类型变量存的值是对象的地址 (2):对于equals方法,比较的是是否是同一个对象 首先,equals()方法不能作用于基本数据类型的变量, 另外,equals()方法存在于Object类中,而Object类是所有

ABUbole的博客 741

一门语言如何快速看懂和学习一门语言

一门语言如何快速看懂和学习一门语言 首先我们来看一门语言:(以Java为例): Java是现在最流行的语言之一,可以说上到飞机的控制系统,下到我们用的小型手机系统,最成熟的实现上层都是用的Java。Java的基础有什么东西。如果我们会Java,这时候需要苹果开发用Object C写程序,如何快速上手呢? 有一种说法,语言只是工具,学好一门语言可以干大部分的事。学会一门语言之...

Frank浩的博客 434

如何学习一门语言

心态这不但是学习一门语言最重要的,而是对任何的学习都是最重要的。下面是书中的描述,非常的精彩,特别是那个比喻: 学习一门语言的时候,要利用以前所学的语言的功底,但是也要保持开放的心态。有些人执着于一种理念:这就是写所有程序必须遵循的方法。我不是说那种语言,但是某些语言,令人执着于这样的理念。当开始学习语言的时候,他们会批评这种语言跟真正神的语言的所有的不同之处。当使用语言时,他们极力使

王骕的专栏 4482

如何快速学习一门编程语言

本文分享了程序员如何快速掌握编程语言的方法论。作者提出编程学习应区分"技"(具体技能)和"术"(方法论),强调在LLM时代掌握学习"术"的重要性。文章提供了一套具体的学习步骤:1)了解语言特性;2)编写简单程序熟悉基本语法;3)通过自检表格对比语言差异;4)实践demo项目。最后给出了一份详细的语法对比表模板,帮助程序员系统化地学习语言。该方法特别适合已掌握至少一门编程语言的开发者快速上手语言

qq_40036519的博客 1277

如何快速学习一门语言

最近,苹果推出语言swift,我就在想,我们作为一个程序员,为了跟上时代的脚步,追随科技的发展,依然的悠然潇洒的生活,那么,如何快速学习一门语言?是作为程序员先要想的。 我自己思考总结了一下,下面列一下我的大纲。 1 了解该语言的基本数据类型,基...

cheshukaoxing75253的博客 158

如何学习一门语言手篇)

学习程序设计语言是程序员看家的功夫,许多程序员边编边学,没有止境,可以说是“活到老学到老”。在语言面前,程序员永远是学生。然而,程序设计语言是一个不断发展的技术,从机器语言到汇编语言,从低级语言到高级语言,从面向过程语言到面向对象语言,从C/S语言到B/S语言,从非垮平台语言到跨平台跨系统语言,从纯语言到开发平台工具,真的是目不暇接。这些革命性的技术浪潮推动着程序员不断地学习语言以适应其发展,

eom_n216的专栏 1133

学习一门语言的12种方法

当一个开发人员有一定的开发基础后,想象着如何学习一门语言,下面这十二个方法可能会对你的学习有一定的帮助将其与类似的语言进行比较; 阅读语言的官方文档; 使用互联网今夕搜索; 与社区接触; 编写玩具程序; 使用改语言编写 “生产就绪”的代码; 阅读一本关于这门语言的书籍; 观看讲座与视频; 阅读示例代码; 阅读生产代码; 寻找好的工具; 保持你的激情;

Bin_Going的博客 1500

如何快速学习一门语言

编程语言的开发越来越快,要求每一个开发人员聚焦于更快的学习能力。那么,学习一门开发语言最有效的途径是什么?实践。 实践意味着,使用你学习的内容去做东西,在做的过程中更快的学习。 比如你学习烹饪,你能仅仅只是看油管上的烹饪视频或者看某个大厨的烹饪书籍,就能做饭了么? 为什么这是最好学习的方法?因为你会保持较高的学习频率。当你在不断的做一个事情的时候,你在重复,你的大脑会不断接受,你会记住完成功...

qq_36199745的博客 1100

如何学习一门语言或框架

简评:语言层出不穷,Dart, Go, Kotlin, Elixir 等等。极光日报曾经分享过一篇文章 —— 不同编程语言学习曲线。挑战学习曲线这事儿可能太难,但有些小技巧能帮助我们快速学习。原作者 Vinicius Brasil 分享了以下几点 ~ 1、先掌握语言,再学习框架 有些朋友倾向于学习框架,比如 Ruby on Rails。框架很多,但都是在语言的基础上发展的,掌握了基础才能...

weixin_30268071的博客 164

Chrome侧边栏WebUSB投屏:免安装替代QtScrcpy

WebUSB是W3C标准定义的浏览器原生USB设备访问接口,通过安全握手协议实现网页与硬件的低延迟双向通信;其核心价值在于绕过传统驱动依赖与系统权限限制,在Chrome沙箱内完成设备识别、帧传输与触控注入;相比QtScrcpy等桌面工具,它天然适配企业终端策略、规避杀软拦截、支持即开即用,特别适用于远程协助、产线质检、教育演示等对部署轻量性与操作零门槛要求严苛的场景;本文基于Chrome Side Panel API与WebUSB深度整合,实现Android设备免ADB、免Root、免后台进程的原生投屏与业

weixin_34146805的博客 239

快速学习-如何学习一门语言

程序员之道,万变不离其宗,说相声讲究的是说、学、逗、唱,学习程序最快也是最好的办法就是:过、抄、仿、改、调、看、练、创、悟: 过: 学习一门语言,第一步就是把它所涉及的基础知识大体过一点,不求深解,只求了解——第一遍:无需了解太过深入的理论,大体知道这门语言是什么样的,主要面向哪些场合,一些基本的语法格式是什么样的就可以了。 抄代码: 刚开始写代码,没有多少人一上来就能立刻自己写一个很完善很强大的代码,甚至连基本的语法都会写错,这时候抄代码就很关键了,从书上抄,从例子里抄,边抄边想,边想边回.

逍遥云恋 579
上一篇: 2020-12-19
下一篇: Python学习笔记
qq_52697394
博客等级 码龄6年 3粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值