Java入门基础扫盲详解

ACM新手入门扫盲 本帖是给本校大一生写的,致力于给有志于搞ACM-ICPC的同学一个自学成才的机会,是基本的入门扫盲帖子。诣在给出一个大局观,给出一个可以努力的方向。 阅读详情

       今天开始小研便带大家一起学习Java,希望我自学的经验能给大家带来一点帮助,话不多说,我们先从Java的基础知识开始了解。

                                                                  

                                       (小研学得还可以的,跟我走没得错)
 

什么是Java?

       Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台。有的同学会问了:小研!不是说是编程语言吗!这计算平台是什么呀!

       对呀,什么是计算平台呢?

       计算平台是在电脑中运行应用程序(软件)的环境,包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构、操作系统、运行时库。

       Java作为后端,以其优秀的性能具备快速,安全和可靠的特点。从手机到互联网,Java 已经渗透进了我们信息生活的方方面面。Java君真的很好。

 Java 主要有三个版本

1)JavaSE(J2SE)(Java2 Platform Standard Edition, java平 台标准版)

2)JavaEE(J2EE)(Java 2 Platform,Enterprise Edition, java平 台企业版)

3)JavaME(J2ME)(Java 2 Platform Micro Edition, java平 台微型版)。

       简单来说,你可以根据需要找到适合你的Java版本,它就是这么万金油。

Java的特点

(1)Java是一门面向对象的编程语言

       又有同学会举起手问了:什么是面向对象呀?

       面向对象是一种软件开发思想。它是对现实世界的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。说到抽象有些编程基础的人可能会想到C++,Java的编程相对于来说还是很简单的。不用太过于担心,它虽然繁杂但易学。

       而相对的另外一种开发思想就是面向过程的开发思想。面向过程是一种以过程为中心的编程思想。

       我们化抽象为具体,举个例子:比如你要赶去上班或者是上学,你需要做什么?

       小研的话会把这个过程分为:起床,穿衣,洗漱,吃早饭,穿鞋出门;这就是出门的一整个流程,也就是过程。而Java可以不用严格按照顺序来执行每个动作。这里不得不以C++为代表典型与Java进行比较:Java摒弃了C++中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期。

       Java语言功能强大且简单易用,各种框架出现,使Java吃足了红利,应用范围越来越广。

       从语言来说,Java是一门静态语言。静态语言便是指在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改。C++, JAVA, C#, Scala这些都是静态语言。

       相对于,动态语言没有任何特定的情况需要指定变量的类型,在运行时确定的数据类型。Python就是典型的动态语言。

        二者有不同的长处。动态语言是能够让程序员提高编码效率,可以使更少的代码来实现功能。静态语言能让硬件执行更高效,因此需要程序员编写的代码准确无误。从一定角度来说静态语言的效率更高。(拒绝踩一捧一)

(2)Java具有跨平台/可移植性

         这是Java的核心优势,Java在设计时就很注重移植性和跨平台性,比如:Java中描述一个整数时, 用int类型描述,那么这个int就永远为32位,不像C++可能是16位也可能是32位,这样的话程序的 可移植性就比较麻烦

        Java有句口号:“Write once,run anywhere .”一次编写、到处运行。

        这句口号的核心就是JVM 。计算机在应用程序和硬件之间会屏蔽很多细节,它们之间依靠操作系统完成调度和协调。

大概就是下面这个样子:

加上Java应用、JVM的体系结构会变为这样

        Java是跨平台的,已编译的Java程序可以在任何带有JVM的平台上去运行。你可以在Windows平台下编写代码,然后拿到Linux平台下运行,方便吧。

        那么,我们怎么实现这个操作呢?

        首先你需要在应用中编写Java代码;再用Eclipse 或者javac 把Java代码编译为. class 文件;然后把.class 文件变成. jar文件。这样这个.jar 文件就能够在Windows、Mac OS X、Linux 系统下运行了,切换平台时,就不需要再次编译那写Java代码了。(真的很方便!!!)

(3)Java能够容易实现多线程

        多线程的使用可以带来更好的交互响应和实时行为,Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。Java作为一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如Java是如何实现多线程的。从操作系统的角度来说,实现多线程的方式主要有下面这几种

1)在用户空间中实现多线程

2)在内核空间中实现多线程

3)在用户和内核空间中混合实现线程

(4)Java具有高性能

        Java最初发展阶段,总被人诟病"性能低",但发展至今,Java语言本身发展通过虚拟机的优化提升了几十倍上百倍的运行效率,因此Java低性能的短腿,已经完全解决了,发展至今,很多C++应用 也都慢慢转为Java开发了,很多C++程序员也渐渐转向Java程序员

        经过javac编译器编译称为字节码(bytecode),经过JVM内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分JVM的实现比如Hotspot JVM都提供了JIT(Just-In-Time) 编译器,也就是通常所说的动态编译器,JT能够在运行时将热点代码编译机器码,这种方式运行效率比较高,这是编译执行,所以Java不仅仅只是一种解释执行的语言。


(5)Java语言具有健壮性

        Java是一种健壮的语言,吸收了C/C++语言的优点,但去掉了其他影响程序健壮性的部分,如指针,内存的申请等等,就算Java程序出现错误也是抛出然后有异常处理机制来处理Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。这也是Java与C .语言的重要区别。

(6)Java 易开发分布式项目

        Java是为Internet的分布式环境设计的,因为他能够处理TCP/IP协议,事实上,通过一个URL访问一个网络资源和访问本地文件是一样简单的,Java还支持远程方法调用,使程序能够通过网络调用方法。

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

        Java的基础都只是这样,简单却包含了Java基础的概念,我们今天就学到这里,之后再见啦~

                                                                 

【就学JAVA】Java SE基础语法扫盲 黑马笔记自用 阅读详情

相关推荐

java 程序员知识点 扫盲

文章目录前言java 知识点 扫盲持续更新.... 前言   如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话50,那欢迎常来啊!!! java 知识点 扫盲 01 JDK、JRE、JVM什么区别 02 == 和 equals的区别 03 hashcode()与equals()的作用、区别和联系 04 重载和重写的区别 05 final的作用 06 为什么局部内部类和匿名内部类只能访问局部final变量? 07 S

杨杨杨~~的博客 1285

Java/JDK下载安装与环境配置(Windows 10 超详细的图文版教程 )

前言:对于很多初学者来说,我想可能很多人都会遇到的一个问题就是Java环境变量的配置问题。自己明明就是按照度娘上的教程去一步步配置的,但还是会有很多的人出现配置不成功的问题。所以今天在这里分享一下windows 10 系统下安装Java的教程,希望对Java初学者能有所帮助。 一. Java的下载与安装 作为初学者,要想学习Java语言,第一个条件就是要让电脑上具备有Java环境,那么怎么让电...

奔三的Uncle 44万+

Android逆向基础-java基础入门

一、vscode安装java插件 二、java代码基础知识扫盲了解 三、apk_java层逆向小案例 四、java与frida的hook文章推荐

十一姐的博客 5063

Java 入门 (超级详细)

Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,被广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行。Java还提供了丰富的库和框架,可以加快开发过程,提高开发效率。变量是计算机程序中用于存储数据的一种数据类型。它是一个名称,代表了一个值或一个对象,可以在程序中多次使用。

qq_63519395的博客 10万+

基于java记账管理系统 含源码、数据库、部署教程、论文、答辩ppt一条龙服务.zip

有部署问题可私信联系 ├── 【一定要读我】(关于java记账管理系统).txt ├── 截图 │   ├── 用户年收入.png │   ├── 用户注册(1).png │   ├── 用户注册.png │   ├── 用户财务月统计.png │   ├── 用户财务记录信息.png │   ├── 管理员用户信息.png │   └── 首页.png ├── 数据库文件 │   └── database.sql ├── 源代码 │   └── jizhang.zip └── 论文等资料 └── 论文等资料 ├── 基于java记账管理系统.ppt └── 基于java记账管理系统毕业论文.doc ├── 截图 │   ├── 用户年收入.png │   ├── 用户注册(1).png │   ├── 用户注册.png │   ├── 用户财务月统计.png │   ├── 用户财务记录信息.png │   ├── 管理员用户信息.png │   └── 首页.png ├── 数据库文

量化策略缺数据?一份QMT/PTrade免费数据清单与特殊数据源QtFactor评测

本文为量化策略开发者提供QMT和PTrade平台的免费数据资源清单,并深度评测QtFactor在补充特色数据方面的价值。涵盖Tick级数据、Level2行情、资金流向等关键信息,帮助开发者在预算有限的情况下构建高效数据解决方案,特别适合打板策略和日内回转交易。

weixin_29058331的博客 419

Java 入门(完整教程)

1991 年,美国的 Sun 公司为了开发智能家电等嵌入式设备的控制系统,由詹姆斯・高斯林(James Gosling)领导的 Green 计划 团队开始了一种新语言的研发。最初该语言被命名为 Oak(橡树),它是基于 C++ 开发的,吸收了 C++ 的优点并做出来扩展,同时摒弃了 C++ 中的一些复杂概念,使得 Java 功能强大的同时又易于理解和使用。

野生派蒙的博客 2万+

半桥LLC谐振变换器及同步整流MATLAB仿真(二)

接上文,半桥LLC谐振变换器及同步整流MATLAB仿真

qq_55203246的博客 4331

【Java基础知识 1】Java入门级概述,让阿里架构师告诉你为什么要分库分表

1998年12月8日,第二代Java平台的企业版J2EE发布。 1999年4月27日,HotSpot虚拟机发布。 2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。 2009年,甲骨文公司宣布收购Sun。 2014年3月Oracle发布正式版JDK8,JDK8改进比较多,最大的改进是Lambda表达式(以及因之带来的函数式接口,很多原有类都做

m0_64383736的博客 9950

从Delphi 7到Delphi 10.4.1的代码迁移:关键挑战与实用解决方案

本文详细探讨了从Delphi 7升级到Delphi 10.4.1进行代码迁移的关键挑战与实用解决方案。核心内容包括应对Unicode字符串处理、64位数据类型变化、VCL/FMX界面框架选择、第三方组件迁移以及数据库层现代化改造(如从BDE迁移至FireDAC)。文章为开发者提供了系统的迁移前准备、核心问题攻克策略及测试落地指南,旨在帮助团队高效、平稳地完成系统现代化升级。

weixin_29250403的博客 533

pyecharts可视化图表-tree:从入门到精通

本文系统介绍了树图(Tree Chart)的可视化技巧,包含基础实现、方向定制和环形布局等实例。树图能清晰展示层次结构数据,适用于组织架构、文件系统等场景。教程详细解析了pyecharts树图的核心配置项,包括数据准备、方向设置(下上、右左)和样式定制,并提供了完整代码示例。通过本指南,读者可快速掌握专业树图的构建方法,实现复杂层次数据的可视化呈现。

大数据内容个人总结与分享 1970

java编程基础(入门级)(超级完整版)

java基础编程 01基础知识 1.计算机基础 【1】进制 A.十进制转化二进制 除以2,求余数,商继续除以2,一直到0为止,从底下往上得到结果。 B.二进制转化十进制 1 | 1 | 0 | 0 23∣22∣21∣202^3 | 2^2 | 2^1 | 2^023∣22∣21∣20 8+4+0+0=128+4+0+0=128+4+0+0=12 【2】 计算机的储存方式 位(bit):0或1 字节(byte):8位1字节,数据储存的最小单位 1 KB=1024 Byte 1 MB=1024 KB 1 GB=

weixin_41406651的博客 6万+

ABB机器人绝对精度实战:从焊接路径优化到TCP控制(附配置步骤)

本文深入探讨了ABB机器人绝对精度在焊接路径优化中的核心价值。通过对比重复定位精度,阐明绝对精度如何补偿机械误差,确保TCP在整个运动路径上的轨迹精度。文章提供了从示教器激活绝对精度功能的详细配置步骤,并分享了针对焊接抖动和实现0.2mm路径精度的进阶调优技巧,包括TCP标定、伺服参数优化与系统维护。

weixin_29053073的博客 352

【Java基础】Java基础扫盲

Java基础扫盲 文章目录Java基础扫盲1 Java创建一个对象的方法有几种?[~](https://www.cnblogs.com/liululee/p/11570353.html)2 Java中== 和equals的区别是什么?3 序列化的作用是什么?常见的序列化方法是什么?Java自带的序列化是怎么实现的?4 解释下重载和重写的区别?[~](https://blog.youkuaiyun.com/geekmubai/article/details/81975990)5 [有了解过java的异常机制么?](ht

ZMXQQ233的博客 373

别再只抄代码了!深入理解MQ2传感器数据手册,搞定ppm换算公式

本文深入解析MQ2烟雾传感器的工作原理与ppm换算公式,从数据手册解读到数学建模,提供详细的校准与优化方法。通过实际案例和代码示例,帮助开发者准确测量气体浓度,解决常见问题,提升传感器应用的可靠性。

weixin_42713608的博客 504

rk3588平台USB 3.0 -OAK深度相机适配方法

摘要:本文记录了OAK摄像头设备的配置与测试流程。主要内容包括:1)添加USB设备udev规则;2)拉取相关依赖库;3)安装Python3和pip;4)安装项目依赖;5)安装FFmpeg工具;6)测试摄像头功能并转换视频格式;7)将测试视频拷贝到U盘查看。操作步骤涵盖了从设备驱动配置到功能测试的完整流程,提供了详细的命令行操作指引。通过该文档可快速完成OAK摄像头的环境搭建和基础功能验证。

yy_hear的博客 325

前端扫盲总结

前端扫盲

HBK_Y的博客 251

【动态导通电阻】GaN功率器件中动态导通电阻退化的机制、表征及建模方法

研究目的:鉴于动态RON退化对GaN功率器件性能的显著影响,本文旨在全面综述和讨论GaN功率器件中动态RON退化的机制、表征方法、建模技术以及解决方案,以期为GaN功率器件的设计、优化和应用提供理论指导和实践参考。内容概述:文章首先分析了缓冲层陷阱和栅极不稳定导致动态RON退化的物理机制,并通过物理基础的TCAD模拟与高压背栅测量结果进行对比,揭示缓冲层陷阱的充电/放电过程如何影响动态RON。接着,讨论了不同GaN器件技术中栅极不稳定引起的动态RON增加以及栅极过驱动的作用。

荷塘阅色 1168

java stringformatter_Java基础扫盲系列(-)—— String中的format

Java基础扫盲系列(-)—— String中的format以前大学学习C语言时,有函数printf,能够按照格式打印输出的内容。但是工作后使用Java,也没有遇到过格式打印的需求,今天遇到项目代码使用String.format()工具api。这里完善知识体系,将Java中的formatter简单的总结下。An interpreter for printf-style format strings...

weixin_42514930的博客 1669

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java基础扫盲(二)

有关Java基础知识可以帮助你快速知其底层原理实现。

Java小白的博客 致力分享每一天学到的知识 1341

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java基础扫盲

本篇博文针对有其它编程语言基础,但未接触Java的读者。读完本篇博文,能够对Java面向对象的特性有个基本认识,基本掌握Java语法,看懂相关代码。 包名取名规范 包名=域名反向 例如: 域名:www.baidu.com 包名:com.baidu 方法的重载 重载:在一个类中,有相同的函数名称,但形参不同的函数。 形参不同,可以是数量不同,或者类型不同。 例如: public static int max(int num1, int num2){...} public static int max(i.

兴趣使然的创作者 965

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

扫盲java基础-注解

一、基础知识 1、注解是jdk1.5版本提供的一个特征:@Deprecated:标识使用方法已经被放弃,但是还可以使用 @SuppressWarnings("all") //@SunppressWarnings("uncheck") 取消警告操作 2、元注解:不能包含其他注解的注解(元数据) @Documented 生成 JavaDoc文档的时候会生成在文件中 @Retetion 代表该注解的作...

Brave_heart4pzj的博客 4231

扫盲-Quartz 入门详解

用R1框架的quartz写个定时服务,先自扫盲,之前用过,未深入了解 入门简介: 基本上任何公司都会用到调度这个功能, 比如我们公司需要定期执行调度生成报表, 或者比如博客什么的定时更新之类的,都可以靠Quartz来完成。正如官网所说,小到独立应用大到大型电子商务网站, Quartz都能胜任。 Quartz体系结构: 明白Quartz怎么用,首先要了解Scheduler(调度器)、Job(任务)和Trigger(触发器)这3个核心的概念。 Job: 是一个接口,只定义一个方法execute(J

lb_nt_1982的专栏 341

java学习之入门扫盲篇

概要 最近这几天开始进入java的学习,接触到了好多不是很了解的概念,像JDK、JRE、JVM、GC等等这些,放到这里来进行下扫盲。 java java是一种面向对象程序设计语言和java平台的总称,即java包括java语言和java平台。 java语言 java语言跟我们以前接触过的C#、C++语言一样都是面向对象的语言,...

weixin_30538029的博客 149

Java基础知识扫盲

其实我们可以看到,double本身就是不准确的表示一个值,取得是一个近似值,例如,new BigDecimal(0.1) 但是创建出来的值并不是0.1,而是0.100000000000000000055555555......等,但是new BigDecimal("0.1")时,创建出来的值正是0.1值是很准确的。几乎所有的商用编程语言都有序列化的能力,不管是数据存储到硬盘,还是通过网络的微服务传输,都需要序列化能力。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的。

Java小白的博客 致力分享每一天学到的知识 2981
上一篇: Java已半截身子入土,勿念
下一篇: Java重难点大全
Java研究社
博客等级 码龄5年 4粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值