java基础·小白入门(一)

目录

  • Java语言概述
    • Java的性质
    • 三种平台
    • 跨平台原理
  • Java语言开发环境
    • 相关概念
    • Java开发工具的安装
    • Java程序的编译与运行
    • 基本注意事项
  • Java语言基础
    • 数据类型
      • 基本数据类型
      • 引用数据类型
    • 关键字与标识符
    • 常量与变量
      • 常量
      • 变量
    • 数据类型转换
    • 常见运算符

Java语言概述

这一部分主要讲讲Java的一些性质、常用的平台及其跨平台运行的原理。

Java的性质

  • 简单的。Java的风格类似C++,但摒弃了C++中容易引发程序错误的一些特性,如指针、结构、内存管理等,Java提供了丰富的类库和各种框架,更有利于开发者开发。
  • 面向对象的。Java的核心是类和对象,它支持继承、重载、多态等面向对象的特性。我们熟知的python也是面向对象的编程语言。
  • 可靠的。Java的类型检查比C++严格,可发现数组和字符串访问的越界,Java提供了异常处理机制。Java自己负责内存管理,提供了垃圾内存回收机制,可以有效避免内存泄漏问题。
  • 与平台无关的。Java源程序(.java)被编译成一种与平台无关的字节码格式(.class),这是一种中间代码。然后由Java虚拟机解释执行。只要安装有Java虚拟机的机器都能执行这种中间代码。
  • 安全的。Java语言避免了非法内存操作;Java有其安全体系架构,从而确保Java代码的安全性。
  • 分布式的。如:多台机器共同分担流量;多台机器分管数据库和功能;多台机器分管不同功能;同一功能由多台机器分担。
  • 支持多线程的
  • 支持网络编程的

三种平台

  • Java SE:Java平台的标准版。主要用于桌面应用软件的编程。
  • Java ME:Java平台的精简版。主要应用于嵌入式系统开发。
  • Java EE:Java平台的企业版。主要用于分布式的网络程序的开发。

跨平台原理

  • 字节码:与平台无关的中间代码。java源代码编译后生成与平台无关的中间代码文件,后缀为.class。
  • JVM:Java虚拟机。可以把Java的字节码看成是JVM上所运行的机器码。理论上平台存在定制的Java虚拟机(Java解释器程序),Java程序就可以运行。

Java语言开发环境

这部分主要讲讲Java开发环境的相关概念以及集成开发环境(IDE)的选择。

相关概念

  • JDK(Java Develop Kit),Java开发工具包。JDK 是一个简单的命令行工具包,主要包括:编译运行Java程序的编译器(javac.exe)和解释器(java.exe)、Java系统类库、JVM。
  • JRE(Java Runtime Environment),Java运行环境。通常已包含在JDK中,主要包括:Java系统类库、JVM。注意:JRE是不能编译Java源程序的。

Java开发工具的安装

以下教程选其中一个看就行,如果你的IDE是IDEA就选第一个,如果是Eclipse就选第二个。

  • Java和IDEA安装:Java和IDEA安装视频教程
  • JDK和Eclipse安装:JDK和Eclipse安装视频教程

Java程序的编译与运行

  • 编写源程序。Java程序的编辑可以使用任何一个文本编辑器,如:UltraEdit、记事本等。
  • 编译源程序。可以通过命令行调用javac.exe来实现。
  • 运行或调试程序。可以通过命令行调用java.exe来实现。

基本注意事项

  • java源文件的扩展名必须是.java 。
  • 所有的java程序都是由一个或多个类组成。
  • 一个java源文件中最多只能有一个public类,且文件名必须与该public类名相同。
  • 若没有public类,则源文件名可以任意。
  • main方法是程序执行的入口,每个java应用程序必须有一个main方法。
  • 包含main方法的类即为主类。

Java语言基础

这部分主要讲讲Java语言的数据类型、关键字与标识符、常量变量、数据类型转换、常见运算符等。

数据类型

基本数据类型

  • 整型:byte(字节型)、short(短整型)、int(整型)、long(长整型)
  • 浮点型:float(单精度浮点)、double(双精度浮点)
  • 逻辑型:boolean
  • 字符型:char
    Java默认所有的整数值是int类型,在数值后加l或L表示该数值是long类型。Java默认所有的浮点值是double类型,在数值后加f或F表示该数值是float类型。
    逻辑型(布尔型)boolean只有true(“真”)和false(“假”)两个取值。true和false不能转换成数值表示形式,占1个字节。
    字符型char采用的是Unicode字符集编码方法,在内存中占2个字节(注意这里和C语言的char占用内存不同)。字符声明只能表示单个字符,用单引号。

引用数据类型

引用数据类型在内存中存放的是指向该数据块的首地址,不是数据值本身。(引用数据类型后文会细讲)

  • 数组
  • 接口

关键字与标识符

  • 关键字:Java语言中预定义的保留字,具有特定的含义和用途。像private, protected, public,super, this,boolean, byte, char, double, float, int, long, short这些都是关键字。关键字很多,不用全部都记住,记住一些常用的就行,其他的遇到了再查资料。
  • 标识符:程序员定义的名称,用于标识变量、方法、类、接口、包等。标识符必须遵循Java的命名规则:
    • 可以由字母、数字、下划线(_)、美元符号($)组合而成.
    • 必须以字母、下划线或美元符号开头,不能以数字开头。
    • 关键字不能当标识符使用。
    • 区分大小写。
    • 驼峰命名法CamelCase类和接口用这种形式;camelCase变量和方法用这种形式。

常量与变量

常量

  • 数值常量:按其数据类型可分为整型常量、浮点型常量、字符型常量、字符串常量与布尔型常量等5种类型。
  • final常量:java中final关键字用于声明常量,即值在初始化后不能改变的变量。例如:final int MAX = 10;final float PI = 3.14f;其中MAXPI就是final常量。

变量

Java变量声明、初始化、赋值的操作和C语言很像,下面直接举例说明:

public class Example
{public static void main(String args[]){byte a=10;short b=20;int c=0x30;long d=1234567890123L;byte e=129;float ff=1.234f;double dd=34.56d;char c1='a';char c2='\141';char c3='\u0061';char c4='\\';boolean f1=true}
}

Java 在程序中可以随时定义变量,不必集中在执行语句之前。

数据类型转换

  • 自动类型转换,也称为加宽转换。将具有较少位数的数据类型转换为具有较多位数的数据类型,原则是不会损失精度或溢出。
  • 强制类型转换,也称为变窄转换。将位数较多的数据类型转换为位数较少的数据类型,其语法是“(欲转换的数据类型)变量名”:如int temp = (int)123.45;
  • 字符串转换成数值型数据。通过Float.parseFloat()方法实现
  • 数值型数据转换成字符串。在Java语言中,字符串可用加号“+”来实现连接操作。
// 字符串与数值数据互相转换操作
String myNumber = "123.45";
float myNum = Float.parseFloat(myNumber);
System.out.println(myNum);  // 输出为整型的:123int temp = 123;
String myString1 = "" + temp;
String myString2 = "my string is" + temp;
System.out.println(myString1);  // 输出为字符串的:123
System.out.println(myString2);  // 输出为字符串的:my string is123

常见运算符

  • 算术运算符+ (加)、- (减)、* (乘)、/ (除)、% (取模)、++ (自增)、-- (自减)
  • 赋值运算符= (赋值)、+= (加等于)、-= (减等于)、*= (乘等于)、/= (除等于)、%= (取模等于)
  • 关系运算符== (等于)、!= (不等于)、> (大于)、< (小于)、>= (大于等于)、<= (小于等于)
  • 逻辑运算符&& (逻辑与)、|| (逻辑或)、! (逻辑非)、&(逻辑与)、|(逻辑或)
  • 位运算符& (按位与)、| (按位或)、^ (按位异或)、~ (按位取反)、<< (左移)、>> (右移)、>>> (无符号右移)
    关于逻辑运算符的&& (逻辑与)、|| (逻辑或)、&(逻辑与)、|(逻辑或),其中&&||属于短路逻辑运算符。
  • 短路逻辑与&&,如果第一个操作数为false,则不会计算第二个操作数,结果直接为false。
  • 短路逻辑或||,如果第一个操作数为true,则不会计算第二个操作数,结果直接为true。
  • &|不会短路,即不管第一个操作数的值如何,第二个操作数都会被计算。
    Java中,浮点数之间不能用==做比较,C语言也是如此。可参考:Java比较两个浮点数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chrome扩展程序开发新手指南:事件监听器的应用技巧

问题背景 最近我在开发Chrome浏览器插件时&#xff0c;遇到了一个需要脚本初始化的问题。在插件被安装后或浏览器标签页被刷新时&#xff0c;我需要重新初始化插件。为了实现这一点&#xff0c;我研究了Chrome提供的几个API接口&#xff0c;它们分别是chrome.runtime.onInstal…

[面试题]Redis

[面试题]Java【基础】[面试题]Java【虚拟机】[面试题]Java【并发】[面试题]Java【集合】[面试题]MySQL[面试题]Maven[面试题]Spring Boot[面试题]Spring Cloud[面试题]Spring MVC[面试题]Spring[面试题]MyBatis[面试题]Nginx[面试题]缓存[面试题]Redis 什么是 Redis &#xff…

随机产生一些江河上的坐标数据

不久前收到一个需求&#xff0c;说要随机创建约一百个某段江河上的坐标点&#xff0c;用于做一些数据呈现。 我首先是想到用AI直接给我一点数据&#xff0c;没想到给出来的坐标&#xff0c;有许多都落在陆地上&#xff0c;根本不符合我的要求。后来结合AI给出的建议&#xff0…

生成对抗网络——GAN深度卷积实现(代码+理解)

本篇博客为 上篇博客的 另一个实现版本&#xff0c;训练流程相同&#xff0c;所以只实现代码&#xff0c;感兴趣可以跳转看一下。 生成对抗网络—GAN&#xff08;代码理解&#xff09; http://t.csdnimg.cn/HDfLOhttp://t.csdnimg.cn/HDfLO 目录 一、GAN深度卷积实现 1. 模型…

面试题分享--Spring02

Spring 框架中都用到了哪些设计模式?(必会) 1. 工厂模式&#xff1a;BeanFactory 就是简单工厂模式的体现&#xff0c;用来创建对象的实例 2. 单例模式&#xff1a;Bean 默认为单例模式 3. 代理模式&#xff1a;Spring 的 AOP 功能用到了 JDK 的动态代理和 CGLIB 字节码生成…

The First项目报告:深度解读Layer 2生态zkSync

zkSync发币了&#xff0c;这个无数撸毛党心心念念数年之久的项目终于要来了&#xff0c;zkSync 是由Matter Labs 于2019 年推出的以太坊Layer 2 扩容解决方案&#xff0c;作为L2龙头项目之一&#xff0c;与其同属一个层次的L2四大天王之三Optimism、Arbitrum、zkSync、StarkNet…

Profibus协议转Modbus协议网关模块帮助PLC实现智能激光设备通讯

一、前言 Profibus转Modbus网关&#xff08;XD-MDPB100&#xff09;是一种工业通信协议转换设备&#xff0c;用于实现Profibus协议与Modbus协议之间的转换。Profibus转Modbus网关在工业自动化系统中具有广泛的应用&#xff0c;它解决了不同协议设备之间的通信问题。本文将深入…

怎么样判断真假单北斗

国产化替代正在中国各行各业逐步提升中&#xff0c;特别涉及重点产业——国家安全&#xff01; 只有仅支持B1I和B3信号的芯片才是真正的单北斗芯片。但凡你支持了B1C、B2a、B2b中的一个就是假的单北斗。 B1C/L1/E1、B2a/ L5/E5a、B2b/G3/E5b这些频点与其他GNSS系统是完全重合的…

湖北科技学院2024年成人高等继续教育招生简章

湖北科技学院&#xff0c;这所坐落在荆楚大地的高等学府&#xff0c;一直以来都是培养各类专业人才的重要基地。随着社会的快速发展&#xff0c;终身学习的理念深入人心&#xff0c;成人高等继续教育作为满足广大成年人提升学历、增强职业技能的重要途径&#xff0c;受到了越来…

Java输入输出语句 和 保留字

目录 键盘输入语句 保留字 键盘输入语句 Input.java , 需要一个 扫描器(对象), 就是Scanner 步骤 &#xff1a; 导入该类的所在包, java.util.*创建该类对象&#xff08;声明变量&#xff09;调用里面的功能 案例要求&#xff1a;可以从控制台接收用户信息&#xff0c;【姓…

润滑不良:滚珠花键磨损的隐形杀手!

滚珠花键作为一种精密机械传动元件&#xff0c;被广泛应用于各种机器和设备中&#xff0c;起着传递动力和运动的重要作用。滚珠花键经过长时间的运行&#xff0c;难免会多少些磨损&#xff0c;严重的话还会导致设备不能正常运转。那么&#xff0c;如何保证它的正常运行呢&#…

88. 合并两个有序数组(简单)

88. 合并两个有序数组 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;88. 合并两个有序数组 2.详细题解 两个数组均有序&#xff08;非递减&#xff09;&#xff0c;要求合并两个数组&#xff0c;直观的思路&#xff0c;借助第三个数…

【Linux环境下Hadoop部署】—报错“Unit ntpd.service could not be found.“

项目场景&#xff1a; 执行 “systemctl status ntpd” 命令。 问题描述 报错&#xff1a;Unit ntpd.service could not be found. 原因分析&#xff1a; 没有安装ntp 解决方案&#xff1a; 执行 “yum install ntp” 命令&#xff0c;再次执行 “systemctl status ntpd” 命令…

Docker部署私有仓库Harbor

Harbor构建Docker私有仓库 文章目录 Harbor构建Docker私有仓库资源列表一、部署Docker-Compose服务1.1、下载最新Docker-Compose1.2、查看Docker-Compose版本 二、部署Harbor服务2.1、下载Harbor安装程序2.2、配置Harbor参数文件2.3、所需参数和可选参数2.3.1、所需参数2.3.2、…

平庸的学术工作者

自己进入学术这条路&#xff0c;差不多十年了&#xff0c;回想自己目前的成果&#xff0c;自我评价为平庸。如果将同领域清华的年轻学者打分为 100 分的话&#xff0c;我将自己打分 65。 到目前为止&#xff0c;并不觉得智力因素在管理科学与工程领域的科研中有太大决定作用&a…

Demeditec Diagnostics DmbH兽医诊断类科研试剂

此类产品包括用于多种动物物种包括狗(犬)、猫、牛、马、大鼠和小鼠等分析物的检测。 皮质酮酶联免疫检测试剂盒(Corticosterone rat/mouse Elisa Kit) 产品编号&#xff1a;DEV9922 皮质酮是肾上腺皮质在应答促肾上腺皮质激素时所产生的一种糖皮质激素&#xff0c;是醛甾酮前…

CP AUTOSAR标准之MemoryDriver(AUTOSAR_CP_SWS_MemoryDriver)

1 简介和功能概述 该规范描述了AUTOSAR基础软件模块内存驱动程序(Mem)的功能、API和配置。   内存驱动程序提供访问不同类型内存设备的基本服务,如读取、写入、擦除和空白检查。   尽管闪存仍然是最常见的非易失性存储器技术,但内存驱动程序规范考虑了所有相关的内存设备…

SS928的SVP_NNN和NNN的区别

图像分析引擎 2 &#xff08;SVP_NNN&#xff09;与图像分析引擎 1 &#xff08;NNN&#xff09;在多个方面存在差异&#xff0c;以下是一些主要的区别和使用上的差异点&#xff1a; 接口风格差异&#xff1a; 图像分析引擎 1 使用 ACL 接口&#xff0c;而图像分析引擎 2 使用 …

虚拟警示教育馆如何革新安全教育?揭秘其深远意义与实际优势

一、推动警示教育的创新与普及 虚拟警示教育馆是将传统警示教育与现代科技相结合的新型教育模式。其意义主要体现在以下几个方面&#xff1a; 1、增强教育的互动性和沉浸感&#xff1a;虚拟警示教育馆通过3D建模、VR等技术&#xff0c;创建逼真的警示场景。这种身临其境的体验能…

(资料收藏)王阳明传《知行合一》共74讲,王阳明知行合一音频讲解资料

今天给大家带来的不是软件&#xff0c;而是一份精神食粮——《知行合一》的教程福利。这可不是一般的教程&#xff0c;它关乎心灵&#xff0c;关乎智慧&#xff0c;关乎我们如何在纷繁复杂的世界中找到自己的位置。 咱们得聊聊王阳明&#xff0c;这位明代的大儒&#xff0c;他…