第一阶段Java基础知识:第二章Java基础语法知识腾讯云开发者社区

在我们开始讲解程序之前,命名规范是我们不得不提的一个话题,虽说命名本应该是自由的,但是仍然有一定的“潜规则”,通过你对命名的书写,别人一眼就能看出你是不是一个“行家”。我们先来看一下有哪些规则。

A:包名:

全部小写用.隔开eg:com.ideal.www

B:类名或接口:

类的首字母大写。如果类名由若干个单词组成,那么每个单词首字母大写。

C:方法或变量名:

所有的方法名都应该小写字母开头。如果方法名含有若干个单词,那么其后每个单词首字母大写。

D:常量名:

全部大写用_隔开

E:原文件名:

原文件名必须和类名相同类名.java

F:主方法入口:

所有的Java程序由publicstaticvoidmain(String[]args)方法开始执行。

HelloWorld作为类名自然需要满足首字母大写,又由于HelloWorld由两个单词组成,所以两个单词首字母分别大写。

2.1

关键字

(1)被Java语言赋予特定含义的单词,他们有着特定的使用位置和方式

(2)特点:

全部小写。

(3)注意事项:

A:goto和const作为保留字存在。

B:类似于Notepad++、sublime等编辑器对关键字有特殊颜色标记

(这是两款和好用的编辑器,可以简单的理解为可以使代码带着好看色彩的高级记事本)

类别

说明

访问控制

private

私有的

protected

受保护的

public

公共的

类、方法和变量修饰符

abstract

class

extends

扩充,继承

final

最终值,不可改变的

implements

实现(接口)

interface

接口

native

本地,原生方法(非Java实现)

new

新,创建

static

静态

strictfp

严格,精准

synchronized

线程,同步

transient

短暂

volatile

易失

程序控制语句

break

跳出循环

case

定义一个值以供switch选择

continue

继续

default

默认

do

运行

else

否则

for

循环

if

如果

instanceof

实例

return

返回

switch

根据值选择执行

while

错误处理

assert

断言表达式是否为真

catch

捕捉异常

finally

有没有异常都执行

throw

抛出一个异常对象

throws

try

捕获异常

import

引入

package

基本类型

boolean

布尔型

byte

字节型

char

字符型

double

双精度浮点

float

单精度浮点

int

整型

long

长整型

short

短整型

变量引用

super

父类,超类

this

本类

void

无返回值

保留关键字

goto

是关键字,但不能使用

const

null

2.2

标识符

(1)就是给类,接口,方法,变量等起名字的字符序列

(2)组成规则:

A:首字符:字母(A-Z、a-z)、美元符($)、下划线(_)

B:首字符之后:字母(A-Z、a-z)、美元符($)、下划线(_)或者数字的任何字符组合

A:不能以数字开头

B:关键字不能作为标识符

C:区分大小写

2.3

注释

(讨厌写自己写注释,讨厌别人不写注释~)

注释就是为了方便自己或别人后期阅读这部分代码的提示,能够快速的让阅读者,了解这部分代码的作用。

(1)注释就是对程序进行解释说明的文字(不会被编译运行)

(2)分类:

A:单行注释//+内容

B:多行注释/*内容*/

C:文档注释/***/被javadoc工具解析成一个说明书,后期会讲到

在我们前期的学习中,只需要掌握基本的单行注释和多行注释即可

注释规范:

1、类注释注释模板如下:

/**

*FileName:Test.java

*类的详细说明

*

*@author类创建者姓名

*@Date创建日期

*@version1.00

*/

2、属性注释注释模板如下:

/**提示信息*/privateStringstrMsg=null;

3、方法注释注释模板如下:

*类方法的详细使用说明

*@param参数1参数1的使用说明

*@return返回结果的说明

*@throws异常类型.错误代码注明从此类方法中抛出异常的说明

4、构造方法注释注释模板如下:

*构造方法的详细使用说明

5、方法内部注释在方法内部使用单行或者多行注释

(根据实际情况添加)注释模板如下:

//背景颜色ColorbgColor=Color.RED

4

常量

(1)常量就是在程序执行的过程中,其值不发生改变的量(例如π、重力加速度,光速等)

而在Java中我们使用final关键字来修饰常量

Eg:finaldoublePI=3.1415927

习惯:虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量(随大流就好啦)

A:字面值常量

B:自定义常量

字面值常量:

C++primer:像42这样的值,在程序中被当作字面值常量:字面值是因为仅能用它的值称呼它,常量是因为它的值不能修改。每个字面值都有相应的类型,例如:0是int型,3.14159是double型。字面值仅存在于内置类型,没有类类型的字面值。因此,也没有任何标准库类型的字面值

简单理解:例如inta=6;它的字面值就是a,它的实际值是6

(3)字面值常量

A:字符串常量"bwh"

B:整数常量666,888

C:小数常量123.456

E:布尔常量true,false

F:空常量null

(4)在Java中针对整数常量提供了四种表现形式

A:二进制由0,1组成。以0b开头。

B:八进制由0,1,...7组成。以0开头。

C:十进制由0,1,...9组成。整数默认是十进制。

D:十六进制由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

A:常见进制

常见进制的转化:

常见进制→十进制:忽略前缀和0,对1进行运算

0b10101(二进制)

=1*2^4+1*2^3+1*2^0

=16+14+1

=21

0123(八进制)

=1*8^2+2*8^1+3*8^0

=64+16+3

=83

0x3c(十六进制)

=3*16^1+12*16^0

=48+12

=60

十进制→常见进制:

除基取余,直到商为0,余数反转。(转换几进制就将基数除以几)

其他进制的转换可以通过十进制这个中间进制进行转换

熟悉2的倍数对我们也是很有帮助的

B:补充:补码、原码、反码

为什么我们要学习这些呢?首先我们要知道,在计算机内,有符号数有三种表示方法,源码、反码、和补码。而所有的数据运算都是采用补码进行的。它的重要性可想而知。

1、原码:二进制点表示法,最高位为符号位,“0”表示正,“1”表示负,其余位置表示数值大小,可直观反映出数据的大小。

2、反码:解决负数加法运算问题,将减法运算转换为加法运算,从而简化运算规则。

3、补码:解决负数加法运算正负零问题,弥补了反码的不足。

7的二进制:111

原码

正数的原码最高位是0负数的原码最高位是1其他的是数值位

符号位

数值位数

+7

0

0000111(补够8个字节,在左面补4个0)

-7

1

0000111

反码

正数的反码与原码相同负数的反码与源码符号位相同,数值位取反1→0、0→1

1111000

补码

正数的补码与原码相同负数的补码是在反码的基础上+1

1111001

2.5

变量

我们刚介绍了什么是常量,那么什么是变量呢,顾名思义,变量就是在某个范围内可以变化的量,其实它就是一个被你所定义的变量,在一个数据类型的约束下,可以在数据类型所允许的范围内进行,被赋值,运算,等操作。

(变量可以不在定义的时候就赋初始化值,但是在运行编译时,如果被编译变量仍没被赋值,则是没有意义的,编译器将会报错)

格式:数据类型变量名=初始化值

变量类型:

·局部变量

·实例变量

·类变量(静态变量)

局部变量:定义在方法、构造方法、或者语句块中的变量

(生而带来死而带去只能活在自己的世界)

只能在一定范围内使用的变量,随着这个方法等的结束变量也就无效了

对于局部变量的理解,刚入门可能也不会太深,等后面几篇我们学习到方法后,再回过头来看这部分内容,就会有一种明了的感觉。

实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见

暂时在学习基础语法知识的时候可以暂时忽略实例变量这部分内容,这部分内容主要被使用在面向对象的部分,但是极其重要。

过了很久,你也不愿回头看,学习的进度就会很慢~

类变量:后期补充

2.6

数据类型

2.6.1

Java是一种强类型的语言,针对每一种数据都定义了明确的数据类型(就是将一些值的范围做了约束,从而为不同类型的值在内存中分配不同的内存空间)

注意:在此部分暂时不用深究引用类型,着重认熟悉一下基本数据类型,引用类型在面向对象的部分会详细解释。

我们来看一下八种基本数据类型的详细说明:

Name

Size*

Range*

1byte|8bit

存放的数据范围是-128~127之间

2bytes|16bit

最大数据存储量是65536,数据范围是-32768~32767之间。

4bytes|32bit

数据范围是负的2的31次方到正的2的31次方减1。

4bytes|64bit

数据范围为负的2的63次方到正的2的63次方减1。

数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F

8bytes|64bit

数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

只有true和false两个取值。

2bytes

存储Unicode码,用单引号赋值。

注意:

1.整数默认是int类型

如:longl=66666666666666L//否则报错

2.浮点数默认是double(双精度浮点型)

如:doubled=521.1//正确floatf=52.1f//必须加f

3.boolean一般用来进行逻辑运算→流程控制中

4.Byte、short类型被赋值时,其实接收的是一个int类型的值,不在范围内即报错

5.一个中文字符占据两用字节,Java中字符可以存储一个汉字,是因为Java字符采用Unicode编码,每个字符占用两个字节。

6.Java中提供了三个特殊的浮点数值,正无穷大(正数除以0),负无穷大(负数除以0),NaN(不是一个数字,0除以0,负数开根号)

2.6.2数据类型转换

一般来说,我们在运算的时候,要求参与运算的数值类型必须一致

(1)默认转换(从小到大的转换)—自动类型转换

A:byte,short,char(→int→long→float→double)

B:byte,short,char相互之间不转换

他们参与运算首先转换为int类型

疑惑:为什么float(4个字节)在long(8个字节)后面

A:它们底层的存储结构不同

B:float表示的数据范围比long范围要大

long:2^63-1

float:3.4*10^38>2*10^38>2*8^38>2*2^3^38

=2*2^144>2^63-1

例子一:低精度byte到高精度int会根据默认转换,自动转换类型

例子二:高精度int到低精度byte可能会损失精度

byte数据类型是1个字节、8位

int数据类型是4个字节、32位

但是有没有办法能够让我们输出这种运算的结果呢?这就需要我们用到强制类型转换的知识。

(2)强制类型转换

格式:目标数据类型变量=(目标数据类型)(被转换的数据)

注意:不要随便的去用强制转化,因为它隐含了精度损失的问题

在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

例子:

inti=128;

byteb=(byte)i;

因为byte类型是8位,最大值为127,所以当int强制转换为byte类

型的时候,值128就会导致溢出

很经典的题目1:永远做不对系列

第一句:byte类型的b1,b2相加自动类型转换为int型

int类型的(b1+b2)赋值给byte类型的b

属于大单位转换为小单位可能造成精度损失

第二句:3和4为常量,编译过程中先把结果计算出来,

然后看是否在byte的范围内,如果在就不报错

总结:

变量相加,会首先看类型问题,最终把结果赋值也会考虑类型问题

常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错

很经典的题目2:永远不会做系列

求输出结果:

分析过程:

我们想要知道结果是什么,就应该知道是如何计算的

而我们又知道计算机中数据的运算都是补码进行的

得到补码,首先要计算出数据的二进制

A:求出130的二进制10000010

130是一个整数所以补齐4个字节(一个字节8位)

0000000000000000000000010000010

B:做截取操作,截成byte类型的了

10000010

这个结果是补码

C已知补码求原码。

数值位

补码:

0000010

反码:

0000001

1111110

11111110转换为十进制为-126

2.7

字符

字符是指在计算机中所使用的字母、数字、汉字、和符号,表示时用单引号包含在内。

例如:‘5’‘R’‘。’均是字符

在内存中,字符数据以ASCII码存储,即以整数表示

需要记忆的常见字符‘a’→97‘A’→65‘0’→48

其余字符依次递推即可

一种特殊的字符——转义字符

转移字符=转义+字符→转变含义的字符(不再是本来字符的意思)

结构:\+一些特定的字母

其中\n(换行)和\t(制表符)最为常用

(一)下面两种输出变量love的方法均有换行效果

补充:\r和\n的区别

回车\r意思是光标重新回到本行的开头

换行\n光标移动到下一行,不一定是行首,取决于其后是否还有内容

(因为我们常用在一行的句末,所以会误以为会在下一行的行首)

针对不同系统的换行符:

苹果系统Mac\n

Unix、Linux系统\n

Windows系统\r\n

在windows中,如果在两端字符串的中间使用转义字符,只有使用\r\n才能真正的达到了我们日常操作中,回车换行的那种效果。

(二)\t是补全当前字符串长度到8,最少1个,最多8个空格

所以灵活的使用制表符可以达到对齐两行数据的作用

2.8

字符串

字符串是由零个或者多个字符组成的有限序列,它是编程中表示文本的数据类型

字符串使用的时候用双引号括起来

String并不是Java中的基本方法,而是一个类。

我们在此部分不做过多的介绍,但要知道,String类是一个非常非常重要的类!!!

我们会在后面有专门一大篇介绍

字符串和其他数据做加法运算的时候,结果是字符串类型。

这里的+不是加法运算,而是字符串连接符

2.9

运算符

算数运算符

赋值运算符

比较运算符

逻辑运算符

位运算符

三目运算符

01

2.9.1算数运算符:+-*/%++--

A:整数相除只能得到整数(想得到小数需将其中任意的一个数据变成浮点数)

Eg:intx=3;

inty=4;

System.out.println(x/y);→System.out.println(x*1.0/y);

B:/除法求商%除法取余

C:++,--就是对变量进行自增1或者自减1.参与运算前置后置有区别

来一道例题,大家就整明白了:

Eg:intx=4;

inty=(x++)+(++x)+(x*10);

System.out.println(y);

//首先x后置++所以括号1中x运算时取4然后自增为5

其次x前置++所以括号2中x=6

最后x*10=6*10=60

Outputy→4+6+60=70

2.92赋值运算符

基本的赋值运算符:=

扩展的赋值运算符:+=,-=,*=,/=,%=

在刚开始的时候我们书写赋值语句,还是推荐使用基本的方法,待到日后熟练,再转为扩展的赋值语句

很经典的题目1:你猜到底对不对

编译第一个语句报错:

编译第二个语句没有报错:()

扩展的赋值运算符其实隐含了一个强制类型转换

s+=1;不是等价于s=s+1而是等价于s=(s的数据类型)(s+1);

2.9.3关系运算符==,!=,>,>=,<,<=

==无论你的操作是简单还是复杂木结构是boolean类型

Output→flase

2.9.4逻辑运算符&|&&||!

逻辑运算符用于连接布尔型表达式,在java中。不可以写成33&x<6

&&和&的区别?同理||和|的区别

A:最终结果一样

B:&&具有短路作用。左边是false,右边不执行。(&&效率更高)

eg:intx=3;inty=4;

booleanb1=((x++=3))&&(y++=4)

结果:x=4,y=4,true

2.9.5位运算符

(3&4)(3|4)(3^4)(~3)(3<<2)(>>)(>>>)

因为是位运算,所以我们需要把数据换算成二进制

^的特点:一个数据对另一个数据位异或两次,该数本身不变

很经典的题目1:交换两个整型数的值

做一个灵活的交换者

·我们先直接给出位运算的结论

这是详细的运算过程,但是我们使用时直接用结论即可

题目:

请用最有效率的方式写出计算2乘以8的结果?

2*8

2<<3

2.9.6三目运算符

这一部分要与下面马上要学习的if语句进行对照学习

满足表达式则执行冒号前的表达式,反之则时候后面的

格式:(条件表达式)?(条件真的表达式):(条件假的表达式)

条件表达式:结果是一个boolean型

Eg:将a,b中的较小数赋值给x

x=a

10

键盘录入

2.10键盘录入

我们之前所写的程序中,数据的值都是固定的,在源码中就写好的,而我们有时候想要让用户来决定一些值的具体数据(例如:学生成绩录入),所以键盘录入就是让用户输入一些值,使得程序更加灵活。

现在我们对于导包以及对象的概念仍然比较模糊,但是我们在介绍别的知识的时候也会频繁的用到,所以大家暂时按照以下的格式记忆下来。

A:导包:

格式:importjava.util.Scanner;

位置:在class上面

B:创建键盘录入对象

格式:Scannersc=newScanner(System.in);

C:通过对象获取数据

格式:intx=sc.nextint();

Strings=sc.nextLine();(字符串录入)

11

选择结构(分支结构)

·if语句

·switch语句

认识选择结构后我们的程序就会变得很有趣了,我们先来学习一下最常见的If条件语句

(一)if语句

更正:满足就执行,不满足就出去

我们对照三元运算符和if语句,这两个是不是完全一样的呢?

三元运算符的操作都可以使用if语句改进,反之不成立

什么时候不成立呢?

当if语句控制的语句体是一条输出语句的时候,就不成立。

因为三元运算符是一个运算符,必须要求有一个结果返回。

而输出语句却不能作为一个返回结果

三个数中求最大值:可以用三目运算跳转2.9.6

用if语句实现:

(二)switch语句

注意:·case后面只能是常量,不能是变量,而且不能出现相同的

·default可以省略但是一般不建议,

(除非判断的值是固定的,单选题)

·break可以省略,一般不建议

·default可以出现在switch语句的任意位置

·switch语句的结束条件:

遇到break或者执行到程序的末尾

以下条件选用switch

·条件分支有多个

·条件的值是整数或一个字符型

原因

·如果条件分支太多时用if语句,一定会出现if的嵌套,if嵌套的越多,程序的开销就会随着增大,这样整个程序的运行效率就一定会大大降低

·switch值比较一次就可以找出条件的结果

我们在下面将上面的if成绩例程改为switch版本是不是简洁了很多呢

12

循环语句

·for循环

·while循环

·do...while循环

我们如果存在大量的重复语句,我们就可以使用循环语句,进行处理。

(一)for循环

for语句不仅适用于循环次数明确的情况,也适用于循环次数不明确的情况(满足条件继续循环,不满足跳出循环)

求偶数和还有一种方法:

for(intx=0;x<=100;x+=2){

Sum+=x

}

求5的阶乘

//分析什么是阶乘n!=n*(n-1)*(n-2)*...*3*2*1

intjc=1;//定义最终结果变量

for(intx=1;x<=5;x++){

Jc*=x

在控制台输出所有的水仙花数

//水仙花数就是指一个三位数,其各位数字的立方等于该数本身

Eg:153=1*1*1+5*5*5+3*3*3=125+27=153

通过for循环我们可以实现获取一个三位数

获取这个三位数的个十百位上的数据

获取方法:假设有一个数据为153

Ge:153%10=3

Shi:153/10%10=5

Bai:153/10/10%10=1

Qian:x/10/10/10%10

Wan:x/10/10/10/10%10

利用嵌套循环:可以输出各种样式的三角形

外循环控制行数,内循环控制列数

System.out.print(“*”)→不换行

System.out.println()→换行

九九乘法表

(二)while循环

判断条件表达式的值为逻辑真时,重复执行循环体(不满足出去)

死循环:

第一种:

for(;;){}

第二种:

while(true){}

While循环和for循环的区别?

使用区别:

for循环控制条件定义的变量,只能在循环内使用

while循环.....可以在循环外使用

因为变量及早的从内存中消失,可以提高内存的使用效率

另一种理解:

for语句不仅适用于循环次数明确的情况,也适用于循环次数不明确的情况

while循环适用于循环次数不明确的情况

(三)do...while循环

先执行循环体,再判断继续条件不为逻辑真时,再执行循环体并判断条件,直到条件为假转去执行while下面的语句(不满足出去)

至少要执行一次

2.12跳转控制语句

·break:中断

·continue:继续

·return:返回

(一)break的意思是中断

适用:switch、循环语句中(循环语句中加入了if判断的情况)

跳出单层循环(从最近的封闭循环体中跳出)

若想跳出多层循环需要使用带标签的语句

格式:标签名:语句

(二)continue继续的意思是

跳出一次循环进入下一次的执行

(结束本次循环,进入下次循环的判定。)

(三)retuen

return关键字不是为了跳出循环体,更常用的功能是(结束一个方法),也就是退出一个方法。跳转到上层调用的方法。

THE END
1.算法的特征有哪些算法的描述方法有哪几种四、算法的描述: 自然语言、程序框图、程序语言。 五、设计一个问题的算法时应注意: (1)认真分析问题,联系解决此问题的一般数学方法; (2)综合考虑此类问题中可能涉及的各种情况; (3) 将解决问题的过程划分为若干个步骤; (4)用简练的语言将各个步骤表示出来。 http://sx.ychedu.com/SXJA/GEJA/612268.html
2.算法的表示方法有哪几种算法的表示方法有哪几种 算法表述有很多,归纳起来大致有四大类:1、直接用编程语言,如C,BASIC,PASCAL,汇编。2、用类代码,一般是在某种编程语言基础上加以简化得出的。3、用自然语言,直接用中文或者英文写。4、用图形化方法,如流程图,框图。 1算法 算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰http://www.chusan.com/zhongkao/184411.html
3.什么是算法,表示算法的4种方法(小白必读)如果序列包含 n 个整数,经过 n-1 次比较就结束,所以算法步骤是有限的、有效的。这个算法可以用于求任何有限整数序列问题的最大元素,所以它是通用的。 算法的4种表示方法 算法可以用自然语言、程序框图、N-S 图、伪代码、计算机语言表示。上面的实例就是用自然语言描述求整数序列最大值的算法。 https://blog.csdn.net/x15297649174/article/details/137055815
4.朱娜斐编译原理复习笔记北京工业大学软件学院递归下降算法的一般代码框架 系统地解决"前看符号"发现的多分支问题,设计到FIRST集(开始集)和FOLLOW集(跟随集)的计算,这个将在下面讲到,其实除了系统的解决方法外,我们还可以通过分析文法的特点来写各个非终结符的分析函数,例如下面可以发现E的右部一定是T+T+T的形式,T则一定是F* F * F * 的形式,https://www.jianshu.com/p/f25c1315af34
5.自然语言处理入门作为我们将要处理的对象,自然语言具备高度灵活的特点。我们太熟悉自己的语言,就像水对鱼来讲是透明的一样,我们很难体会到语言的复杂程度。不如拿自然语言与人工语言做一番比较,看看计算机理解我们的语言是多么困难。 1.1.1 词汇量 自然语言中的词汇比编程语言中的关键词丰富。在我们熟悉的编程语言中,能使用的关键词https://www.ituring.com.cn/book/tupubarticle/28291
6.大数据:分类算法深度解析特征提取的过程需要根据具体的数据特点和任务需求来选择合适的方法。通过精心设计的特征提取过程,我们可以为分类算法提供更具信息量的输入,从而提高模型的性能。 2.2 模型训练 在特征提取后,算法通过学习历史数据的模式来建立模型。常见的分类算法包括决策树、支持向量机(SVM)、神经网络等。模型训练的目标是使算法能够准确http://www.360doc.com/content/24/0112/20/78411425_1110858832.shtml
7.数据结构与算法难点数据结构与算法重点普里姆算法和克鲁斯卡尔算法的比较 5. AOV-网 用顶点表示活动,边表示活动的优先关系的有向图称为AOV网。 拓扑排序:对AOV网络中顶点构造拓扑有序序列的过程。 拓扑排序的方法 (1)在有向图中选一个没有前驱的顶点且输出之 (2)从图中删除该顶点和所有以它为尾的弧 https://blog.51cto.com/u_16099166/7062318
8.5.2空间数据的组织方法由于矢量方法强调离散现象的存在,其主要思想是将线离散为一串采样点的坐标串,而面状区域由边界线确定。矢量数据结构通过记录坐标的方式尽可能精确地表示点、线、多边形等地理实体,其坐标空间假定为连续,能更精确地定义位置、长度和大小。 矢量数据具有如下特点:https://special.chaoxing.com/special/screen/tocard/84680935?courseId=84680909
9.《数据结构》第二章线性表知识梳理(应对期末考)线性表的知识是数据结构中的重点及基础,涉及到的知识会比较多,但对线性表的操作反复进行理解与实践会使你对线性表的理解更加深刻、学的更好。 一、线性表的定义和特点及案例引入 1.线性表的定义和特点 了解线性表内元素的关系,书上对这部分也有了比较详细的介绍,在此我仅用图把它们的关系罗列出来。 http://zhangshiyu.com/post/29882.html
10.数据结构简答题汇总.docx答:联系:数据的逻辑结构与存储结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构在数据结构中,逻辑结构与计算机无关,存储结构是数据元素之间的逻辑关系在计算机中的表示。存储结构不仅将逻辑结构中所有数据元素存储到计算机内存中,而且还要在内存中存储各数据元素间https://www.renrendoc.com/paper/234197561.html
11.科学网—[转载]转载认清虚拟筛选中的陷阱一个直接有效的评估每个药效团特征的相对重要性的方法最近被提出30。与用整个药效团获得的相比较,每一次减少一个药效团特征,导致的命中率降低可以用来评估药效团特征的相对重要性。这是一种通用方法,不仅仅是药效团的查询结构还有用户定义的任何设置条件在筛选算法中都容易受到严格和宽松标准的影响。https://wap.sciencenet.cn/blog-3386602-1162809.html