热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java学习笔记开篇:序言与概述

本文作为《Java学习笔记》的开篇,旨在为初学者提供一个全面的概览。文章首先介绍了Java的基本概念及其在编程语言中的地位,强调了Java与其他主流编程语言的共通之处,特别是其核心结构,如控制语句的重要性。通过详细的目录和前言,读者可以快速了解Java的基础知识和学习路径。此外,文章还探讨了控制语句在编程中的关键作用,为后续深入学习打下坚实基础。

文章目录

  • 前言
  • 一、Java入门
    • Java和其他主流编程语言类似,都是具有以下核心结构的
      • 1、控制语句(这是所有编程语句的核心,没有控制语句程序几乎没有任何意义[^1])
      • 2、循环结构(两大控制运行顺序的结构之一)
      • 3、选择结构(好像也有叫条件语句的,其实总体上来说都是一样的。)
    • 面向对象的核心(不是回家家里人摸走象棋里一对象的那个暗示的对象T_T)
      • 对象
  • 二、初步上手
    • 1.众所周知的Hello World!
      • 那么接下来一行行一个个词进行解释
  • 三、驼峰命名法
  • 总结(和个人的一些观点)




前言

emmm……
我也不是啥特别喜欢守死规矩的人,所以文章内容可能不会有啥明确的结构。大概的随便写一写自己学习Java过程中的一些知识点啥的尽可能的用都能读懂明白的话来写一写,然后再带几个例子啥的…………希望能帮到大家吧。
当然比较靠后面的实际开发部分我在写这些东西的时候还并没有学到,看以后我自己具体学到了再决定会不会去写吧。
当然我知道肯定有一堆的人已经写过一堆一堆的类似的东西了,所以我更多的是写给那些四处找资料然后正好翻进来的人看的←_←




一、Java入门

Java和其他主流编程语言类似,都是具有以下核心结构的


1、控制语句(这是所有编程语句的核心,没有控制语句程序几乎没有任何意义1)


2、循环结构(两大控制运行顺序的结构之一)


3、选择结构(好像也有叫条件语句的,其实总体上来说都是一样的。)


面向对象的核心(不是回家家里人摸走象棋里一对象的那个暗示的对象T_T)

当然Java最核心的就是面向对象编程了←_←

类是抽象化的对象(这样说可能不太清楚,我会跟下面的对象一起说)

对象

对象是实例化的类(详细的介绍会跟在下方(除非我忘了←_←,如果我忘了请直接骂,不用客气←_←))

所谓的类是抽象化的对象大概举例子就是:
张三跟李四都是人类,但是你不能说所有的人类都是张三,这时的人类是个抽象的概念,并不是特指了某一个特定的人事物。
而对象则正好相反,都是人类但是张三就是张三,张三不是李四,同样是人类但是张三已经是一个具体化的对象,不可能再额外指向其他的人事物等一系列巴拉巴拉乱七八糟的东西。

二、初步上手

1.众所周知的Hello World!

先不废话了,代码如下:

//该代码需要在App.java文件下才可以正常的编译运行
public class App{public static void main(String args[]){System.out.println("Hello World!");}
}
//输出结果应该为
//Hello World!

那么接下来一行行一个个词进行解释

1、第一行的public指访问权限级为“公共”类型,访问权限级在后期会讲,这里简单提一下,一个文件内可以含有多个类,但是只可以拥有一个公共类,在调用main(String[] args)函数时固定会从与文件同名的公共类进行查找。
2、“class”指该数据类型为“”,扩展出来的其他类型有“abstract class”抽象类,“interface”接口等类型,在后面会进行相关的介绍讲解。
3、“App”即公共类的类名,同时作为公共类的类名要和文件名保持一致2)
4、“public”类中的public也是访问修饰符,声明为公共方法,不做过多说明。(可以理解为谁都能见到这个方法。)
5、“static”指静态属性,即该方法(函数)即使类没有进行实例化也可以进行调用,在后续应该也会提到。
6、“void”无返回值类型,这个在部分编译器内如果不使用“void”会报错(其实也无可厚非,因为main函数即便有返回值也不会有其他方法接收)。
7、“main(String args[])”这一大串我就放一起说了,“main”是函数名应该没有任何问题,括号内的形参是个字符串型(String)数组,在部分时候可以直接在编译运行的同时对函数传入参数作为字符串型数组args的数据,这是可以在函数内进行实际调用的。晚些我可能会发一些例子在后续的文章内(如果我没发可以直接私信联系我)。
8、“System.out.println();”是个最常见的方法,这里可以进行些基础拆解:
首先根据驼峰命名法可以看出System是个“类”的类型,所以这一整条方法的意思即在“System”类内的out对象(这里应该是个静态实例化对象,因为没有)的println()方法。在println();内填入参数后会执行输出。



三、驼峰命名法

在Java中的一个声明的规范吧,可以让人更快速的分辨出那些为变量(对象),方法,以及类。
首先我们都知道所有方法(函数)后都会有一个()用以表达这是个方法(函数),所以变量(对象)和方法都遵循小驼峰命名法3
接下来说一下大驼峰命名法,大驼峰命名法仅用于“类”的命名,比如Circle类,Shape类等等,首字母都是大写的(如果仔细观察可以发现System和String首字母都是大写,这也意味着这两个都是类的数据类型)。
接下来可以思考下如果全部都遵循小驼峰命名法或者大驼峰命名法容易出现的问题,单纯的类名将很难分清具体是一个变量还是一个类,构造函数和普通方法也更难分清。虽然可以通过命名为其他的内容以区分,但是这样会导致代码的可读性降低。所以



总结(和个人的一些观点)

1、明确编程时的核心三大块:控制语句,循环结构和选择结构
2、刚入门的时候的确会认为Java比C语言输出个Hello World 要繁复许多,但这只是初期的一种感觉(我个人感觉如果初期连这点改变都受不了那不如直接不学,如果下定决心要学不会在意这么一点小问题,Java能发展到现在自然是有原因的。)
3、规范越早养成越好,不光是为了别人好,也是为了自己。
4、养成写注释的习惯,否则后期会骂骂咧咧骂了半天这货为啥不写注释然后突然发现是自己写的东西(别问,问就是亲身经历)……
5、驼峰命名法越早理解越好,这应该归在规范内说的,但是我身边很多人到现在甚至还在用中文来做类名和变量名方法名(然后再带着电脑来找我问一堆难以名状的问题←_←)…………



  1. 当然我的见识还是比较少……也许也会有?我不太清楚…… ↩︎

  2. (注:在声明变量名或类名时要遵循驼峰命名法,这是规范,越早养成习惯越好,越晚越不规范后期的影响越完蛋(身边几个已经整的自己快傻掉了……)。核心就是只有是在命名时,名称中所有的单词的首字母大写(例:如果要声明一个变量名为“疯狂男孩”,可以大体拆解为“疯狂(crazy)”和“男孩(boy)”两个单词组成,根据驼峰命名法则该类名为“CrazyBoy”。如果为普通变量名或者方法则首字母小写而后续其他单词的首字母大写即疯狂男孩作为普通变量变量名为“crazyBoy”。) ↩︎

  3. 所谓的小驼峰命名法即命名时名称内首字母小写,后续所有连续的单词的首字母都要大写。可见注脚2内的内容 ↩︎



推荐阅读
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • Java 类成员初始化顺序与数组创建
    本文探讨了Java中类成员的初始化顺序、静态引入、可变参数以及finalize方法的应用。通过具体的代码示例,详细解释了这些概念及其在实际编程中的使用。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
author-avatar
倾其h所有只为爱你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有