当前位置: 首页 > 编程日记 > 正文

Java基础概念性的知识总结

属于个人的所学的知识总结,不是全面的

1.JDK、JRE和JVM三者的区别

01.JDK:(Java Development ToolKit)Java开发工具包,是整个Java的核心。包括了Java的运行环境、JRE、一堆Java工具和Java基础的类库。

02.JRE:(Java Runtime Envirnment)就是我们平常说的Java平台,所有的Java程序都要在JRE的环境下才能运行。包含了JVM,Java的核心类库,但是不包含开发工具——编译器、调试器。

03.JVM:(Java Virtial  Mechinal)Java虚拟机,属于JRE的一部分。主要的工作是:解释自己的字节码文件,并且映射到本地的CPU的指令继承OS系统调用。Java是跨平台的,就是基于JVM,使用JVM的映射规则,让其变得与操作系统无关。JVM不关心我们写的.Java文件,只关注.class文件(因为.class文件有JVM需要的指令集)。

2.计算机程序

为了让计算机执行某些操作或者解决某个问题而编写的一系列有序指令的集合。

3.包的声明:(package)

代表我们当前的Java源文件在项目中的位置,必须位于除了注释之外的第一行,而且整个Java源文件中,只允许有一个包的声明。

包的命名规范:

01.域名倒置。02.包名全小写

优点:01.便于管理我们的项目 ;02.避免类名冲突

4.注释的目的:

01.方便团队人员的阅读

02.方便项目后期的维护

5.单个词的解释

01.public:访问权限最松的一个,公共的。

02.class:类,是构成我们程序的最小的单位

03.HelloWorlc:类名,必须和Java源文件的名称一致。

04.{}:必须是成对出现,有开始,有闭合。

05.static:修饰符

06.void:代表方法返回值类型,如果方法没有返回值,则必须写成void。

07.main:方法的名称

08.String []:参数的类型

09.args:参数的名称

10.import:导入

11.continue:代表的是,结束本次循环继续下次循环,之后的代码不是执行。

12.break:跳出当前整个循环体

13.return:跳出当前方法,可以带有返回值

6.命名法:

01.帕斯卡命名法:第一个单词首字母大写,其余的单词首字母也大写。适用于类名,常量,静态常量

02.驼峰命名法:第一个单词首字母小写,其余的单词首字母大写。适用于变量

7.变量:一个数据在内存中存储空间的表示,在运行期间可以动态改变。

变量的命名规范:

01.满足驼峰命名法,首字母小写

02.有意义

03.首字母必须以字母,下划线_   美元符号$  人名币符号¥开头

04.对大小写敏感

05.不能使用关键字和保留字作为变量名

8.常量:在运行期间,不允许改变的量。

使用规范:

01.常量名通常大写

02.不同的单词之间使用下划线分隔

03.只能被赋值一次,通常在声明的时候赋予初始值

9.局部变量没有初始值,全局变量有初始值。在类中直接定义的变量是全局变量

10.scanner的测试方式:

01.一个一个的输入测试

02.一次性输入所有,每个变量之间使用空格隔开

11.++自身加1

01.++在前:自身加1,再执行操作

02.++在后:先执行操作,再自身加1

12.自动类型转换规则:

01.如果一个操作数是double,则整个表达式都是double

02.操作数要互相兼容,数值类型的数据

03.目标类型大于源类型

13.强制类型转换:把大的数据类型转换成小的数据类型

14.实现一个数字加密器,加密规则是

加密结果=(整数*10+5)/2+3.14159

加密后的结果仍为一个整数

****华氏温度和摄氏温度的转换***************

华氏温度 = 摄氏温度 * 9 / 5.0 + 32

15.运算符:

一元运算符:一个表达式就可以参与运算。如++,--

二元运算符:两个表达式就可以参与运算。如,+,-,*,/

三元运算符:三个表达式就可以参与运算。

如,数据类型   变量名 = 表达式1?表达式2:表达式3;

表达式1:必须是boolean类型的值,也就是必须使用关系运算符。

表达式2:表达式1为true的时候执行的表达式。

表达式3:表达式1为false的时候执行的表达式。

16.hasNext...()系列

01.获取用户的输入

02.判断用户的输入

17.逻辑运算符:

01.&&与,并且   表达式1&&表达式2

001.如果表达式1为false,则不会执行表达式2,直接返回false。

002.如果表达式1为true,则继续执行表达式2

003.两个表达式都为true,整体才返回true

004.如果其中一个表达式为false,整体返回false

02.|| 或者

001.如果其中一个表达式为true,整体返回true

002.如果表达式1为true,则不会执行表达式2,返回true

03.! 非

18.选择结构:

01.if(boolean类型的表达式){

输出语句;

}

02.if(boolean类型的表达式){

输出语句;

}else{

输出语句;

}

03.if(boolean类型的表达式){

输出语句;

}else if(boolean类型的表达式){

输出语句;

}else{

输出语句;

}

04.if(boolean类型的表达式){

if(boolean类型的表达式){

输出语句;

}else{

输出语句;

}

}else{

输出语句;

}

19.使用switch做等值的判断

表达式的取值:byte ,short ,int ,char , Enum(枚举) ,String(1.7+)

switch(表达式){

case  常量1:

//代码块

break;

case  常量2:

//代码块

break;

default:

//代码块,没有找到匹配项,会执行default

break;

20.循环结构

01.while(循环条件必须是一个boolean类型的值){

循环体(循环操作)

}

02.do{

循环体(循环操作)

}while(循环条件);

03.for(表达式1;表达式2;表达式3){

循环体

}

表达式1:初始化变量, int   a  =0;

表达式2:循环条件,满足条件执行循环体操作

表达式3:迭代变量

三个表达式都可以省略,但是;不能省略

执行顺序:

表达式1——》表达式2——》循环体——》表达式3——》表达式2——》循环体——》表达式3

21. a+=b和a=a+b是否一致?

int a =5;

  double b = 5;

  a = a + b;//编译报错

  a += b;//不会编译报错,底层做了强制类型转换

22.冒泡排序的规则:

01.外层循环 N-1(N:数组的长度)

02.内层循环N-1-i  (i:比较的轮数,外层循环的变量)

03.两两相比 小靠前,必须进行等量转换,互换位置。

23.双重循环的中心思想:

外层循环每执行一次,内层循环执行一遍。

24.求最大值

01.定义一个擂主max

02.循环打擂

03.如果数组中的元素大于max,就让当前的元素的值给max

25.求最小值

01.定义一个最小值,默认是数组中的第一个元素  变量类型   min = nums[0];

02.循环打擂

03.如果发现数组中的元素小于min 把元素的值给min

26.插入算法

01.找到需要插入数据的位置

int  index = nums.length;

02.循环找到位置

for(int i=0;i<nums.length;i++){

if(num > nums[i]){

index = i;

break;

}

}

03.元素后移

for(int j = nums.length-1;j > index ; j--){

nums[j] = nums[j -1];

}

04.插入数据

nums[index] = num;

27.冒泡排序

外层循环控制轮数,数组的长度 -1

外层循环每执行一次,内层循环执行一遍

无论多少个数字相比,都是相邻的两个数组进行比较,数值小的元素会交换前面的位置

代码:

外层循环:数组长度-1

内层循环:数组长度-1-i

26.数组:一组相同数据类型的集合,在内存中开辟一连串的空间。

01.声明数组  02.分配空间  03.赋值  04.使用

如,01.int []  nums;  nums=new int[5];  nums[0]=50;

02.int [] nums = {1,2,3,4}

27.数组的常用API

01.Arrays:数组的操作类,作用是进行升序排列

02.equals(arr1,arr2):比较两个数组的内容和长度是否一致

03.sort(arr):对数组中的元素进行升序的排列

04.toString:把一个数组变成字符串

05.fill(arr,val):将arr数组中的所有元素都赋值成val

06.copyOf(arr,length):将数组arr赋值成一个长度为length的新数组

07.binarySearch(arr,val):查询val在arr数组中的下标

28.练习题

https://wenku.baidu.com/view/b6b045503c1ec5da50e270c5.html

转载于:https://www.cnblogs.com/milu0620/p/6959486.html

相关文章:

vue里的数据

背景&#xff1a; 一个项目完工在即&#xff0c;鉴于此&#xff0c;前端使用了vue&#xff0c;写下此栏&#xff0c;以供日后翻阅&#xff0c; 会涉及到我所运用到的vue相关知识&#xff0c;需要一定的js基础。 默认vue的single-file-components&#xff08;单文件组件开发&…

【Leetcode】刷题之路2(python)

哈希映射类题目&#xff08;简单题小试牛刀啦bhn&#xff09; 242.有效的字母异位词349.两个数组的交集1002.查找常用字符202.快乐数383.赎金信 242. 有效的字母异位词 用python的Counter类太绝了&#xff01;&#xff01;&#xff01; 一行代码解决问题&#xff0c;这道题实…

ORA-01113 file 1 needs media recovery

启动数据库时报错。ORA-01113 datafile1需要恢复。 rman执行恢复。恢复后尝试打开数据库&#xff0c;看结果 rman target / recover datafile 1; alter database open; 反复上述过程&#xff0c;直到所有数据文件恢复。 recover datafile 1; …… recover datafile 13; 如果…

大数据批量导入,解决办法,实践从定时从 sqlserver 批量同步数据到 mySql

c#代码&#xff0c;批量导入数据代码 public class MySql_Target : ZFCommon.DataAccesser.Base.DABase{public MySql_Target(){this.InitDataAccesser(ZFCommon.DataAccesser.DatabaseType.MySql, ReadConfig.TargetConnection);}///大批量数据插入,返回成功插入行数 /// <…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv5训练自己数据集(v6.0)

一、源码下载及requirments 源码下载地址&#xff1a;https://github.com/ultralytics/yolov5 &#xff08;持续更新中&#xff09; 本人所用环境如下&#xff1a; pytorch&#xff1a;1.8&#xff08;因为cuda版本用了pytorch1.8&#xff09; cuda&#xff1a;10.1 Python&am…

CSS之常用选择器(元素、id、类、通配选择器)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*1、元素选择器作用&#xff1a;根据标签名来选中指定的元素语法&#xff1a;标签名{}例子&#xff1a;p{} h1{} div{}*//*p{color: red;}*/…

Java中 实体类 VO、 PO、DO、DTO、 BO、 QO、DAO、POJO的概念

PO(persistant object) 持久对象 在 o/r 映射的时候出现的概念&#xff0c;如果没有 o/r 映射&#xff0c;没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中…

SAP有用的NOTE(持续更新)

目录 2421240 - Portal is not loaded on Chrome 56 or higher. 66971 - Supported SAP GUI platforms 66971 - Supported SAP GUI platforms 1999880 - FAQ: SAP HANA System Replication 2250144 - FAQ: SAP HANA Secure User Store 2222200 - FAQ: SAP HANA Network …

【目标检测】yolo系列:从yolov1到yolov5之YOLOv1详解及复现

检测器通常能够被分为两类&#xff0c;一类是two-stage检测器&#xff0c;最具代表的为faster R-CNN&#xff1b;另一类是one-stage检测器&#xff0c;包括YOLO&#xff0c;SSD等。一般来说&#xff0c;two-stage检测器具有高定位和识别准确性&#xff0c;而one-stage则有速度上…

Ubuntu终端命令行缩短显示路径

平时我们使用linux终端命令行的时候&#xff0c;常常会被一个问题困扰&#xff0c;那就是文件路径过长&#xff0c; 有时候甚至超过了一行&#xff0c;这样看起来非常别扭&#xff0c;其实只要两步就可以解决这个问题&#xff1a; 1&#xff0c;修改.bashrc文件&#xff08;用户…

主要的约瑟夫环问题

解说 http://poj.org/problem?id3517 n个人&#xff0c;编号为1~n。每次从1開始数&#xff0c;数到m的人出圈。最后一个出圈的人的编号。f[1] 0; for(int i 2; i < n; i) {f[i] ( f[i-1] m)%i; } printf("%d\n",f[n]1);这里第一次出圈的人的编号是m&#xff…

CSS之复合选择器(交集、并集选择器)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*将class为red的元素设置为红色*/.red{color: red;}/*将class为red的div字体大小设置为30px*//*1、交集选择器作用&#xff1a;选中同时复合多…

SAP有用的知识(持续更新)

一、安装SAP 1.1、产品可用性矩阵&#xff08;Product Availability Matrix&#xff09; SAP官网-Maintenance-Product Availability Matrix&#xff0c;点击页面的Access the Product Availability Matrix。 选中你公司授权的商品&#xff08;Licensed Products&#xff09…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv2详解及复现

YOLO v2 Yolov2论文链接&#xff1a;YOLO9000: Better, Faster, Stronger yolov2的改进 从Yolov2论文的标题可以直观看到就是Better、Faster、Stronger。Yolov1发表之后&#xff0c;计算机视觉领域出现了很多trick&#xff0c;例如批归一化、多尺度训练等等&#xff0c;v2也…

我有一个很好的思维习惯-反思

和我共事过的同事有的会说我聪明&#xff0c;我就暂且当做是夸奖吧&#xff0c;其实我并不是聪明&#xff0c;只是有一个思维习惯。做事过程中或者做完一件事之后会反思这个过程&#xff0c;有哪些地方我是重复操作的&#xff0c;有没有什么地方可以简化流程的&#xff0c;这应…

CSS之关系选择器(子元素、后代、兄弟选择器)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>/*为div的子元素span设置一个字体颜色*//*子元素选择器&#xff1a;作用&#xff1a;选中指定父元素的指定子元素语法&#xff1a;父元素>子…

网络管理员比赛回顾01-基本操作和简单vlan

目录 一、模拟器eNSP 二、基本操作 三、配置IP地址 四、VLAN 一、模拟器eNSP 使用eNSP模拟器&#xff0c;来源于网络上的安装包&#xff0c;学习一个。基本操作就不多说了&#xff0c;在实践里慢慢记录 二、基本操作 认识3种视图&#xff1a;用户视图、系统视图、接口视…

【Leetcode】刷题之路3(python版)

回溯专题 1.回溯算法的本质是n叉树的深度优先搜索&#xff0c;同时&#xff0c;需要注意剪枝减少复杂度。 2.回溯算法三部曲 确定参数和返回值回溯函数终止条件单层循环 3.回溯法思路 回溯法是一种算法思想&#xff0c;而递归是一种编程方法&#xff0c;回溯法可以用递归来…

Luogu 4438 [HNOI/AHOI2018]道路

$dp$。 这道题最关键的是这句话&#xff1a; 跳出思维局限大胆设状态&#xff0c;设$f_{x, i, j}$表示从$x$到根要经过$i$条公路&#xff0c;$j$条铁路的代价&#xff0c;那么对于一个叶子结点&#xff0c;有$f_{x, i, j} c_x * (a_x i) * (b_x j)$&#xff0c;对于内部结点…

52深入理解C指针之---不透明指针

该系列文章源于《深入理解C指针》的阅读与理解&#xff0c;由于本人的见识和知识的欠缺可能有误&#xff0c;还望大家批评指教。一、size_t&#xff1a;用于安全表示长度&#xff0c;所有平台和系统都会解析成自己对应的长度    1、定义&#xff1a;size_t类型表示C中任何对…

CSS之布局(文档流)

文档流&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>文档流</title><style>.box1{background-color: yellow;}</style></head><body><!--文档流&#xff08;normal fl…

网络管理员比赛回顾02-网关、静态路由、动态路由

目录 一、配置网关 二、配置静态路由 三、配置动态路由 3.1、使用RIP协议配置动态路由 3.2、使用OSPF协议配置动态路由 2021年9月参加青年网络管理员比赛&#xff0c;因为网管超龄不能按照“青年”参赛&#xff0c;临时培训我们这批“青年”参赛&#xff0c;回顾一下经过以…

[模拟]纺车的轮子 Spinning Wheels

题目链接 题目大意 5个轮子 每个轮子上面有w个缺口 缺口的初始角度是n 宽度是m 每秒转速v 求当他们同时开始转的情况下&#xff0c;什么时候他们的缺口足以让一道阳光通过&#xff08;就是有重叠部分&#xff09; 思考 纯模拟题目没啥说的&#xff0c;就是模拟轮子转1S 2S 3S .…

从头理解self-attention机制

注意力机制中较为重要的是self-attention机制&#xff0c;直接做了个小白能看懂的总结&#xff0c;也便于自己复习。 简介 self-attention机制就是想实现一连串的特征编码&#xff0c;两两之间的互相注意。有一串特征编码&#xff0c;x1, x2, …, xn&#xff0c;这里x1 x2 ……

筛选法求N以内的所有素数

素数&#xff1a;一个数只能被1和它本身整除的数。2是最小的素数#include <iostream> using namespace std; #define NUM 100 char isPrime[NUM 10]; int main() {//筛选法求素数//假设所有的素数都是素数&#xff0c;标志位设为1for(int i 2 ; i < NUM ; i){isPrim…

CSS之布局(盒模型)

盒模型&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>盒模型</title><style>.box1{/* 内容区(content),元素中的所有的子元素和文本内容都在内容区中排列内容区的大小由width和height两个属性来…

SAP创建webservice

目录 一、创建webservice 二、更改webservice 三、SoapUI测试webservice 四、查看webservice日志及排错 一、创建webservice 以用户相关的函数User为例创建webservice&#xff0c;事务码bapi查看bapi函数&#xff0c;BasisComponents-Security-User&#xff0c;选择Tools…

python面试题目

python面试题目 原文地址&#xff1a;https://www.usblog.cc/blog/post/justzhl/b5cc9a05c7d2 问题一&#xff1a;以下的代码的输出将是什么? 说出你的答案并解释。 ?1234567891011121314class Parent(object):x 1class Child1(Parent):passclass Child2(Parent):passprint …

vue2留言板

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>智能社——http://www.zhinengshe.com</title><meta name"viewport" content"widthdevice-width, initial-scale1.0, maximum…

【目标检测】yolo系列:从yolov1到yolov5之YOLOv3详解及复现

在v1、v2的原理和技巧介绍之后&#xff0c;v3除了网络结构&#xff0c;其余的改变并不多。本文着重描述yolov3的原理细节。 相关阅读&#xff1a; 论文&#xff1a;YOLOv3: An Incremental Improvement 源码&#xff1a;https://github.com/ultralytics/yolov3 1. Yolov3网络…