Java 概述和编程基础

  First of all,Java概述:

  类是Java程序设计的基石和基本单元;

  main()方法是程序的入口,它是共有的、静态的,参数String[] args表示一个字符串数组可以传入该程序,用来传递外部数据以初始化程序。  

  计算机语言,总的来说可分成:机器语言、汇编语言、高级语言。

  高级语言:

  解释类——程序源码由解释器执行,不能生成可独立执行的可执行文件,即程序不能脱离解释器独立运行。效率低、领过,能动态调整、修改程序。

  编译类——将程序源码翻译成目标代码(机器语言),目标代码和硬件、操作系统紧密相关。程序一旦修改,需重新编译。

  Java程序要先编译、后执行。Java源文件—编译器—字节码文件——解释器(JVM)——机器码

 

  JVM如何加载类并调用main()方法?

  在main方法执行之前,JVM需要执行3个步骤:类加载、链接、初始化

  (1)通过类加载器加载字节码类和接口到JVM;

  (2)连接合并字节码到运行态的JVM。连接有三步:验证、准备和解析。验证确保类/接口在结构上是正确的,准备工作包括为所需的类/接口分配内存,然后解析符号引用并构建语法树。

  (3)为变量分配内存并初始化;

  当JVM启动时,有3个类加载器被使用:引导类加载器、扩展类加载器、系统类加载器。

  系统类加载器负责在类的搜索路径中找到对应代码,所以HelloWorld类是由系统类加载器加载的。当执行到main()方法,会触发加载、链接其它相关的类的初始化。

 

 

  一、标识符——标识一个名字的存在性和唯一性

  1. 保留字——Java预定义的标识符,又称关键字

  关键字分类:数据基本类型;程序控制语句;访问控制;类、方法和变量的修饰符、变量引用、错误处理、包相关;

  2. 用户自定义标识符,以字母、下划线或$开头的字符序列

 

  二、变量

  变量是一个数据存储空间的标识,不同的数据存入不同的内存地址的空间,相互独立。

  内存的数据需要通过变量来存取,因此,变量赋值操作本质上是内存引用的变化。

  Java是强类型语言,声明任何变量,必须为该变量指定一种数据类型。且先声明,后使用。

  JVM根据变量的类型为变量分配存储空间,分配的空间只能用来存储该类型的数据,因此定义不同类型的变量,实质上是获得了对内存中各种数据类型的访问引用。

 

  三、数据类型

  数据类型:基本数据类型、扩展数据类型

  基本数据类型:布尔型(boolean)、字符型(char)、数值型——整数类型(byte,short,int long)、浮点型(float,double)

  扩展数据类型:类(class)、接口(interface)、数组(array)

  

  四、基本数据类型

  Java不允许数值类型和布尔类型互相转换;

  Java不能定义无符号数(unsigned),当程序中需要无符号数时,需要通过位运算获得。

  整数类型和浮点数的表示范围不受操作系统的影响;

  Java基于unicode表示字符,每个字符占2 Byte;

  整数、浮点、字符可以自动转换,byte、short、char<int<long<double<float,前三种参与计算时不会相互转换,因为都转换为int;

  多种数据类型混合计算,先自动将数转换为容量最大的类型,再进行计算。

 

  五、其它

  常量,表示固定值(无需计算);常变量,final修饰的变量,赋值后不能修改。

  求余运算的两个运算变量没有限制,结果符号跟随求余运算符左边的操作数;

  instanceof(对象运算符)是一个关系运算符,即两边的数据类型应该一致。关系表达式的结果为boolean。

  逻辑运算符&&和||存在短路现象。

  位运算符(<<,>>>,>>).

  运算符的结合性,从左至右。

  

  break语句,终止某个语句块的执行,使得应用程序从该语句块后的第一个语句处开始执行;

  continue语句,忽略当前循环,即跳过循环语句块的一次执行,开始下一次循环。(break结束整个循环)

  return语句,从当前方法退出,控制流返回到方法调用处;

 

  六、程序设计风格

  标识符命名:用完整的英文描述;驼峰式大小写;

  源文件命名:源文件与其中的公共类名字一致;一个源文件只能有一个公共类;若源文件不包含公共类,文件名和某个类名字相同就行;

 

转载于:https://www.cnblogs.com/bigbigbigo/p/8417590.html

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

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

相关文章

19、Fragment

一、Fragment 1.1、fragment介绍 fragment的出现是为了同时适应手机和平板&#xff0c;可以将其看做Activity的组成部分&#xff0c;甚至Activity界面完全由不同的Fragment组成&#xff0c;它拥有自己的生命 周期和接收、处理用户的事件&#xff0c;更为重要的是&#xff0c;可…

喜好:

不喜欢吃&#xff1a;一瓣瓣的蘑菇、海带、豆腐皮、 不喜欢喝&#xff1a;鱼汤&#xff1b; 不喜欢吃&#xff1a;山楂片、法式小面包&#xff08;软软的&#xff09;、果冻、 不喜欢喝&#xff1a;对饮料无感、不喜欢脉动、可乐雪碧等少量还行、 喜欢&#xff1a;啃骨头、排骨…

将TUM数据集制作成BundleFusion数据集

在上一篇文章中,我写到了如何将TUM数据生成BundleFusion所需要的数据集,生成的数据集如下图中所示.并且是将每一组数据的groundtruth.txt中的位姿数据写如到这里的pose文件中,作为每一帧图像的先验位姿. 今天我便将生成的数据集转换为了.sens格式,然后运行bundlefusion算法,第…

每一次突破都是一种进步

一直以来&#xff0c;我接触一门新技术&#xff0c;都是先看开发文档&#xff0c;了解了这个技术是做什么的&#xff0c;能做什么。但是不知道怎么起步&#xff0c;也不敢贸然动手。我的解决办法是看视频&#xff0c;看别人怎么使用&#xff0c;跟着别人做&#xff0c;然后听别…

mysql盲注学习-1

mysql: 1.left() //left()函数 left(a,b)从左侧截取a,的b位 2.mid() //mid()函数 参数 描述 column_name 必需。要提取字符的字段。 start 必需。规定开始位置&#xff08;起始值是 1&#xff09;。 length 可选。要返回的字符数。如果省略&#xff0c;则 MID() 函数…

二分学习笔记

写在前面 二分是一种常用且非常精妙的算法&#xff0c;常常是我们解决问题的突破口。二分的基本用途是在单调序列或单调函数中做查找。因此当问题的答案具有单调性时&#xff0c;就可以通过二分把求解转化为判定。进一步地&#xff0c;我们还可以通过三分法解决单调函数的极值以…

解析.sens数据集

python脚本在下面网址中https://github.com/ScanNet/ScanNet/tree/master/SensReader/python 一定要使用python2运行此脚本. 使用指令如下 python reader.py --filename /media/yunlei/YL/DATASETS/ICL_DATABASE/lr_kt1/living_room_traj1n_frei_png.sens --output_path /me…

ConcurrentHashMap 解读

初始化&#xff1a; 问题&#xff1a;如何当且仅只有一个线程初始化table 1 private final Node<K,V>[] initTable() {2 Node<K,V>[] tab; int sc;3 while ((tab table) null || tab.length 0) {4 if ((sc sizeCtl) < 0)5 …

XML Schema 基本结构

<?xml version1.0?> <Schema name"cangchuSchema" metamodelVersion"4.0"><PhysicalSchema><Table name"highway_toll"><Key><Column name"uid"/></Key></Table><Table name&qu…

关于系统自带 .NET Framework 版本的说明

系统自带版本&#xff1a; Windows XP (SP3) .NET Framework 1.1Windows 7 (SP1) .NET Framework 3.5.1Windows 8.1 .NET Framework 4.5.1Windows 10 (1507) .NET Framework 4.6Windows 10 (1511) .NET Framework 4.6.1Windows 10 (1607) .NET Framework 4.6.2Windows 10 (1703…

BundleFusion那些事儿

背景&#xff1a;前面几篇博客中写了很多关于BundleFusion的东西&#xff0c;主要包括bundlefusion的论文阅读笔记&#xff0c;.sens数据集的生成等&#xff0c;经过最近几天的工作&#xff0c;我对bundlefusion又有了新的技术积累&#xff0c;在这里整理一下&#xff0c;也算是…

问题:图片怎么保存到数据库, 以及怎么把图片从数据库中取出来使用?(已解决)...

简单&#xff0c;不保存图片到数据库&#xff0c;而是图片的路径。 也就是说&#xff0c;先把图片下载到服务器的指定目录下&#xff0c;然后&#xff0c;在把相对的路径保存到数据库中。 如果下次获取图片&#xff0c;就访问数据库&#xff0c;获取图片路径&#xff0c;然后根…

Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

Oracle Study之--Oracle 11gR2通过RMAN克隆数据库Purpose of Database Duplication A duplicate database is useful for a variety of purposes, most of which involve testing. You can perform the following tasks in a duplicate database: Test backup and recovery pro…

ubuntu16.04安装evo

背景:这已经是我第二次尝试安装evo了,最近因为在bundlefusion加入groundtruth的问题搞的很烦躁,我怀疑是不是我给定的groundtruth是不是不正确,所以我就写python脚本,获取计算生成的位姿数据,写入的groundtruth位姿数据.获取数据后,将数据可视化就成了一个很重要的问题,我还是打…

前端性能优化之gzip

gzip是GNUzip的缩写&#xff0c;它是一个GNU自由软件的文件压缩程序。它最早由Jean-loup Gailly和Mark Adler创建&#xff0c;用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件&#xff0c;它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据…

luogu2770 航空路线问题 网络流

题目大意&#xff1a; 给定一张航空图&#xff0c;图中顶点代表城市&#xff0c;边代表 2 城市间的直通航线。现要求找出一条满足下述限制条件的且途经城市最多的旅行路线。(1)从最西端城市出发&#xff0c;单向从西向东途经若干城市到达最东端城市&#xff0c;然后再单向从东向…

手机录音ogg格式怎么转换mp3

Ogg这种音频格式刚出来的时候大家是非常热爱的&#xff0c;但是随着时代的发展&#xff0c;这种音频格式已经已经被取代了&#xff0c;现在呢走在音频格式前端的是MP3格式&#xff0c;这是大家都比较熟悉的&#xff0c;但是我们还是会经常下载到ogg这种格式的音频&#xff0c;就…

TP3.2设置URL伪静态满足更好的SEO效果

URL伪静态通常是为了满足更好的SEO效果&#xff0c;ThinkPHP支持伪静态URL设置&#xff0c;可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀&#xff0c;而不会影响当前操作的正常执行。 例如&#xff0c;我们设置 URL_HTML_SUFFIX>shtml 的话&#xf…

[机器学习] 推荐系统之协同过滤算法(转)

[机器学习]推荐系统之协同过滤算法 在现今的推荐技术和算法中&#xff0c;最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。下面直接进入正题. 1. 什么是推荐算法 推荐算法最早在1992年就提出来了&#xff0c;但是火起来实际上是最近这…

BundleFusion代码框架讲解

背景&#xff1a;前面用了几篇文章来记录和总结了&#xff0c;我在研究bundlefusion过程中遇到的一些问题以及解决方法&#xff0c;本来想实现给bundlefusion输入先验轨迹&#xff0c;然后让其根据给定的轨迹进行重建&#xff0c;这样即便在环境比较恶劣的情况下&#xff0c;也…