java基础知识

java SE 基础知识指南 36. Lock(上):相比Java synchronized,JUC Lock有什么优势?19. io类库:http://java.io类库如此庞大,怎么才能全面系统的掌握它?51. 线程状态:为何synchronized和Lock这两种锁对应的线程状态不同?34. synchronized(上):线程释放锁之后,如何通知其他线程获取锁?13. HashMap(上):为何HashMap中数组的大小必须是2的幂次方?37. Lock(中):如何使用AQS(抽象队列同步器)实现JUC Lock? 阅读详情

一、java语言的特点

1.面向对象

        java 是一种纯面向对象的编程语言,它将数据和操作数据的方法封装在一起形成对象。面向对象编程具有封装、继承和多态三大特性。

2.跨平台性

        java 的跨平台特性主要依赖于 java 虚拟机(JVM)。java 程序首先被编译成字节码(.class 文件),而非直接编译成特定平台的机器码。不同操作系统上只要安装了对应的 JVM,就可以运行这些字节码文件。

3.安全性

        java语言在设计时充分考虑了安全性,提供了多层次的安全机制,例如强类型检查、自动内存管理等。

4.多线程支持

        java语言内置了多线程编程的支持。多线程可以提高程序的运行效率和响应性。同时还提供了同步机制(如synchroized关键字)来保证线程的安全,避免多个线程同时访问共享资源时产生的数据不一致问题。

5.丰富的类库

        java拥有庞大、丰富的标准类库。这些类库提供了大量的现成类和方法,极大提高了开发效率,减少开发成本。

6.分布式

        java提供了丰富的API和协议,支持分布式计算。在分布式系统中,java程序可以通过网络调用其它计算机上的对象方法。

7.高性能

        虽然java是解释型语言,但即时编译(JIT)技术的使用可以将经常执行的代码编译成机器码,从而提高程序的执行效率


二、java语法基础

1.标识符

        标识符用于给程序中的元素命名的符号,例如类名、对象名、方法名、变量名等

2.命名规则

        Ⅰ标识符有字母、数字、下划线以及美元符号($)构成,标识符不能以数字开头

        Ⅱ不能使用关键字作为标识符,例如关键字有class、public、if、else等

3.命名规范

        Ⅰ方法名和变量名通常使用小驼峰命名法,例如 studentAge、getUserName

        Ⅱ类名和接口名通常使用大驼峰命名法,例如 Student、UserService

        Ⅲ常量名通常全部字母大写,单词之间使用下划线分隔,例如 MAX_VALUE、PI

        Ⅳ包名通常全部字母小写,例如 com.user.project

4.注意事项

        Ⅰjava语言的标识符区分大小写,例如name和Name属于不同的标识符

        Ⅱ美元符号虽然可以用于标识符中,但通常不建议使用

        Ⅲ每一条语句均以分号结尾


三、java数据类型

        java的数据类型主要分为基本数据类型和引用数据类型

基本数据类型:

        1.数值型:byte:8位有符号整数,取值范围-128到127;

                         short:16为有符号整数,取值范围-32768到32767;

                         int:32位有符号整数,取值范围-2147483648到2147483647,用于大多数整数运算场景;

                     long:64位有符号整数,取值范围-9223372036854775808 到 9223372036854775807

         2.浮点型:float:32为单精度浮点数。定义时须在数字后面加上f或F,如2.13f

                          double:64位双精度浮点数,是默认的浮点类型,通常用于大多数的浮点运算

        3.字符型:char:用于表示单个字符,用单引号括起来,如:‘A’

        4.布尔型:boolean:只有两个取值true和false

引用数据类型:

        1.类:类是一种抽象数据类型,其中定义了对象的属性和行为。通过类可以创建对象,对象是类的实例。

        2.接口:是一种抽象数据类型。实现接口的类必须要实现接口中定义的抽象方法。

        3.数组:用于存储多个相同数据类型的集合。

        4.枚举:一种特殊的数据类型,定义了一组命名常量,枚举类型可以使代码更具可读性和可维护性。

        5.字符串类型:java语言中字符串是String类的对象,属于引用数据类型

※基本数据类型和引用数据类型的区别

        基本数据类型存储的是实际的值,而引用数据类型存储的是对象的引用(内存地址)。在赋值操作过程中,基本数据类型传递的是值的副本,而引用数据类型传递的则是地址的传递。

※类型转换

        java语言中的类型转换分为自动类型转换(隐式类型转换)和强制类型转换(显式类型转换)

        1.自动类型转换(隐式)

                需要满足的条件是:(1)转换前的数据类型和转换后的数据类型兼容

                                                (2)转换后的数据类型比转换前的数据类型表示范围大

        2.强制类型转换(显式)

                将表示范围大的数据类型转换为表示范围小的类型,就须要进行强制类型转换。在这个过程中可能会造成数据的丢失。

        基本数据类型:byte->short->char->int->float->double

                从左到右的转换属于自动类型转换,而从右到左的转换为强制类型转换

                示例代码:自动类型转换

                运行结果:

                

                示例代码:强制类型转换

                运行结果:

        ​​​​​​​        

        引用数据类型的转换

                向上转型:自动类型转换  小-->大

                向下转型:强制类型转换  大-->小

                示例代码:

                创建父类Animal

        ​​​​​​​        

                创建子类Dog

        

                测试类型转换:

                运行结果:

        ​​​​​​​        


四、运算符

        算数运算符:+ :加法运算,也可用于字符串的连接 ;

                              - :减法运算 ;

                              * :乘法运算 ;

                              / :除法运算,操作数为整数时,结果会取整 ;

                             % :取模运算,返回余数

                             ++ :自增运算,支持前缀和后缀形式,如a++、++a

                             -- :自减运算,支持前缀和后缀形式,如a--、--a

        比较运算符:== :判断两个值是否相等

                             != :判断两个值是否不相等

                             > 、 < 、 >= 、<= :大于、小于、大于等于、小于等于

        赋值运算符:= :将右边的值赋值给左边

                             += :先执行加法,再赋值

                             -= :先执行减法,再赋值

                             *= :先执行乘法,再赋值

                             /= :先执行除法,再赋值

                             %= :先执行取模运算,再赋值

        逻辑运算符:&&:与运算符,两边均为真,结果才为真

                             | |:或运算符,两边全为假,结果才为假

                             !:非运算符,对操作数进行取反操作

        三元运算符:语法为:条件表达式?表达式1:表达式2,若条件表达式为true,则返回表达式1的值,反之返回表达式2的值

        instanceof运算符:用于判断一个对象是否为指定类或接口的实例,返回布尔类型的值


五、示例代码

        java作为纯面向对象的语言,可以说是万物皆对象。类属于一种抽象的数据类型,它是对一类对象的共同属性和行为进行了描述;对象是根据类创建出来的具体实例。创建对象的过程也称为实例化的过程。类中实例成员的使用,需要该类的实例对象去呼叫;类中静态成员的使用,可以通过类名去呼叫或者实例对象去呼叫。

        示例代码:以创建动物类为例

        

        运行结果:

        


科研人必备!用WisPaper搭建个人文献知识库的完整指南(附Zotero联动技巧) 本文详细介绍了如何利用WisPaper搭建高效的个人文献知识库,包括文件命名标准化、文件夹结构设计、语义搜索技巧及与Zotero的深度联动方法。通过智能标签系统和知识图谱功能,科研人员可以快速定位关键文献,提升研究效率。特别适合需要管理大量学术文献的研究者。 阅读详情

相关推荐

解决微信浏览器弹出 Download: Null 问题的终极指南(附阿里云 OSS 配置详解)

微信内置浏览器点击下载链接时弹出 "Download: Null" 的问题,是开发者常遇到的痛点。本篇文章全面解析其原因,包括 iOS 文件下载限制、Content-Disposition 响应头的重要性,以及阿里云 OSS 默认配置的影响。通过详细教程,教你如何在阿里云 OSS 中设置 Content-Disposition 元数据(attachment;filename=xxx.pdf),有效解决该问题。同时,拓展介绍微信浏览器的文件下载限制、跨平台兼容性优化以及 CDN 配置注意事项。

楠搏万的博客 3996

java语言的特点_Java语言有什么特点?

Java语言共有十大特点,分别为:简单性、面向对象、分布性、编译和解释性、稳健性、安全性、可移植性、高性能、多线索性、动态性。1、简单性:Java语言继承了C++语言的优点,去掉了C++中学习起来比较难的多继承、指针等概念,所以Java语言学习起来更简单,使用起来也更方便。2、面向对象:Java是一种面向对象的编程语言。3、分布性:Java设计成支持在网络上应用,它是分布式语言。所以只要用Java...

weixin_29505469的博客 3201

欧姆龙多PLC串行链接模式的应用

欧姆龙多PLC串行链接模式的应用 一、如何将两台CP1H进行串行PLC连接(PLC串行链接) 主机侧设定 从机侧设定 二、 如何实现编程通信 主机侧的【PC连接模式】为【全部】的时候 ① 主机会把自己的地址从3100开始,按照【链接字】设定的字数个数发送到每个从机的3100开始进行存储。 ② 从机会把自己的地址从31n0开始,按照主机侧参数【链接字】设定的字数个数发送到主机的31n0开始进行存储。 注:(n为从机的地址号,若从机号不连续,则该编号的地址将不被定义..

u014202847的博客 3090

JAVA语言都有哪些特点

1. 简单性:Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。7. 高性能:和其它解释执行的语言如basic、tcL不同,Java字节码的设计使之能很容易地直接转换成对应于特定cPu的机器码,从而得到较高的性能。10. 体系结构中立:Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。8. 动态性:Java的设计使它适合于一个不断发展的环境。

hdxx2022的博客 3157

【tensorrt】——深入解析TypeError: pybind11::init()报错:CUDA版本冲突与解决方案

本文深入解析了TensorRT中常见的TypeError: pybind11::init()报错问题,重点探讨了CUDA版本冲突的根源与解决方案。通过实际案例展示了PyTorch与TensorRT的版本兼容性问题诊断方法,并提供了conda环境管理、环境变量配置等实用修复技巧,帮助开发者有效解决CUDA初始化失败问题。

ggg99的专栏 272

VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,

摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。

金牌架构师 1255

Java语言有哪些特点

Java语言有哪些特点

gulang00的博客 1415

Bash Shell 系统巡检脚本

部分安全相关检查需要root权限,建议通过sudo运行完整检查。

老韩的Linux云计算架构师进阶之路 96

Java语言的特点

Java语言的特点

m0_69505153的博客 506

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

彻底解决JDK安装包点击后无反应

jdk双击无法安装,jdk双击没反应,jdk安装包双击后没反应。

renkai721的专栏 8939

Java语言有哪些特点?

1)简单性 2)面向对象 3)分布式 4)健壮性 5)安全性 6)体系结构中立 7)可移植性 8)解释型 9)高性能 10)多线程 11)动态性 1.简单性: Java语言是C++语言的一个“纯净”版本。没有头文件、指针运算、结构、联合、操作符重载、虚基类等。 2.面向对象 面向对象即面向数据。Java的面向对象特性与C++旗鼓相当,Java与C++的主要不同点在于多继承,在Java中,取而代之的是更简单的接口概念。 3.分布式 Java有一个丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。

m0_67402564的博客 3681

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java基础知识总结

Java基础知识总结 PDF版下载链接:《Java基础知识总结》。  一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。 2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。 3,配置环境变量:让java

BriskLyer的博客 2877

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

java基础知识_什么才是java的基础知识?

作者:晓风轻来源:https://zhuanlan.zhihu.com/p/28615617近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考。我做j2ee开发已经超过十载,作为过来人,心路历程估计和大家差不多。编码的前几年,很长一段时间觉得java简单...

weixin_39846898的博客 180

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Java基础知识

标识符: 用来标识类名、对象名、变量名、方法名、类型名、数组名、文件名的有效字符序列。合法的标识符:关键字:Java语言中已经赋予了特定含义的变量:程序运行期间可以被改变的量。在程序中使用变量,必须先创建它并为它取一个名字,并且指明它能够存储信息的类型,这称为“变量声明”,也叫容器的创建。变量的使用:Java 中的注释有三种:Java中的循环语句同c++与c中类似,共有三个for(初始化表达式;条件表达式;迭代语句) { 循环体语句; }whil

qq_62632865的博客 1756

Java基础知识脑图总结

Java基础知识脑图总结 Java基础知识.png

疾风知劲草,智者必怀仁 377

JAVA基础知识总结

java的基础知识总结

wei980704的博客 309

JAVA基础知识图解

JAVA基础知识图解

qq_42895153的博客 219

Java基础知识梳理

Java基础知识梳理上图的放大图

学习是快乐的~ 404

java基础知识大纲

java基础知识图解

仰望与追逐的博客 320

Java基础知识思维导图

两套Java基础知识的思维导图

AthlenaA的博客 1280

【快速复习】Java 基础知识

Java 的基础知识,用于快速复习,突击面试。

2301_79732484的博客 1452

JAVA基础知识思维导图

JAVA基础知识思维导图

weixin_44459907的博客 375
上一篇: 仓颉多线程
下一篇: java多线程
w_zero_one
博客等级 码龄2年 149粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值