黑马程序员笔记——Java基础

-----------  android培训 java培训 、java学习型技术博客、期待与您交流! ------------

DOS命令行

dir:列出当前目录下的文件及文件夹。

md:创建目录

rd:删除目录(文件夹,文件夹要为空)

cd:进入指定

cd..:退回到上一级目录

cd/:退回到根 目录吧

del:删除文件

exit:退出命令行

配置环境变量

环境变量配置

set:用于查看本机的所有环境变量信息

set  变量名:查看具体一个环境变量的值    例如:set path \set  class  path

set  变量名=:清空一个环境变量的值        

set  变量名=具体值:给指定变量定义具体值    (属于临时配置,命令行关闭后失效)用start命令开启DOS窗口配置          仍有效。

set  path = 新值;%path%:在原有环境变量值基础上添加新值

类文件环境变量配置

set  class path =具体指(为多个值时用;隔开)例如:set  class path = .;c:\;d:\(点代表当前目录)

set  class path = :清楚类文件环境变量配置

环境变量和类环境变量配置时加点的区别:

path环境变量配置:先在当前路径找,在到配置的环境变量中找。

类文件环境变量配置:

1、set path = c:\;(不加;只在配置路径找,不在当前路径找。加;在配置路径找完后,在到当前路径找)

2、set  class path = .;c:\;d:\加了点,先在当前路径找,在按配置路径依次找。

java程序开发

hello  world

/*
需求:定义一个hello world小程序。

思路:
1,
2,

步骤:
1,通过class关键字定义一个类。将代码都编写到该类中。
2,为了保证该的独立运行。在类中定义个主函数。格式public static void main(String[] args)
3,保存成一个扩展名为java的文件。
4,在dos控制台中通过javac工具对java文件进行编译。
5,在通过java命令对生成的class文件进行执行。
*/

class Demo//定义一个累。
{
	//主函数。
	public static void main(String[] args)
	{
		//输出语句。
		System.out.println("hello haha");
	}
}


注释

单行注释://

多行注释:/*内容*/

文档注释:/**内容*/

Java的关键字 1、用于类和接口的声明:class, extends, implements, interface 2、包引入和包声明:import, package 3、数据类型:byte, boolean, char, double, int, long, float, short 4、某些数据类型的可选值:flase, ture, null 5、流程控制:break, case, continue, default, do, else, for, if, return, switch, while 6、异常处理:catch, finally, throw, throws, try 7、修饰符:abstract, final, native, private, protected, public, static, synchronilzed, transient, volatitle 8、操作符:instanceof 9、创建对象: new 10、引用:this, supper

11、方法返回类型:void

12、保留字:const, goto


java中的标识符:

26字母的大小写,0-9数字,_ $

注意: 1,数字不可开头。 2,标识符不可以使用关键字。 转义字符:\ 可以转变\后面的字符的函数。例子:\"输出双引号

\n : 换行。

\t  : tab键。

\b : 退格键。

\r : 回车

\'——表示单引号

\”——表示双引号

\\——表示反斜杠“\”

Java中的名称规范:

1、包名:多单词组成时所有字母都小写

      xxxyyyzzz

2、类名接口名:多单词组成,所有单词的首字母大写。

     XxxYyyZzz

3、变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写。

     xxxYyyZzz

4、常量名:所有字母都大写,多单词时每个单词用下划线链接。

     XXX_YYY_ZZZ

常量

1、整型常量

     十进制

     十六进制——以0x或0X开头

      八进制——以0开头

      长整形——以L(l)结尾

2、浮点数常量

      单精度浮点数——后面加f(F)

      双精度浮点数——后面加d(D)

注:

      小数常量的默认类型是double型,所以float类型常量后要加f(F)。

3、布尔常量

      true或false

4、字符常量

     由英文字母、数字、转义序列、特殊字符等的字符所表示,如'a'、'\t'等。Java中的字符占两个字节,是用Unicode码表示的,也可以使          用'\u'加Unicode码值来表示对应字符,如'\u0027'。

5、字符串常量

      字符串常量用双引号括起来。字符串中可以包括转义字符,标志字符串开始和结束的双引号必须写在代码的同一行上。如" \ t Hello,world!".

6、null常量

      null常量表示对象的引用为空


变量:

在内存中开辟空间将常量值进行存储,方便运算。

好处:该空间可以重复使用。

定义格式:

数据类型 变量名 = 初始化值;

使用变量的注意事项:

1,变量没有初始化值,无法进行运算。

int x; x = x + 3;//error;

2,变量都有自己的作用域。

数据类型

基本数据类型:

byte short int long   例子:4L(long)

float double   例子:3.4f(float)

char

boolean

引用数据类型:

类(class) 接口 (interface)数组([])

默认值:整数默认 int;小数默认double

什么时候需要定义变量呢?

当数据不确定时,或者运算后的结果需要参与下一步运算时,

这时就定义一个变量将该不确定的数据进行存储。

强制类型转换

byte a = (byte)3+4

运算符

算数运算符:

加减乘除:"+","-","*","/"

取模(取余):%

自增:a++;++a

自减:a--;--a

区别:

int a;b = 3;

b = a++先赋值,后运算。 a = 4,b = 3

b = ++a: 先运算,后赋值。 a = 4,b = 4

连接符:+ 链接字符窜

赋值运算符:

=、+=、-=、*=、/=、%=

例子:a+=5,相当于 a = a+5

不同点:a+=5只赋值,不做运算,也不做类型提升

比较运算符:

==  , !=  ,<  ,>  ,<=  ,>=

返回值都是boolean型,不是true,就是false

逻辑运算符:

& :  true & true = true;
         true & false = false;
         false & true = false;
         false & false = false;

  |       true | true = true;
         true | false = true;
         false | true = true;

         false | false = false;

 ^       true ^ true = false;

         true ^ false = true;

         false ^ true = true;

         false ^ false = false;

 !    取反值 !true为false

&& 

&和&&的特点:

&:无论左边是true是false。右边都运算。

&&:当左边为false时,右边不运算。

||

|:两边都参与运算。

||:当左边为true。右边不运算。

位运算符;

>>:右移,3>>1=1  相当于  3/2 = 1

<<:   左移,3<<2=12相当于  3*2*2=12

>>>  无符号右移

&      与运算     6&3=2

|       或运算     6|3=7  

^       异或运算   6^3=5  一个数异或同一个数两次,结果还是原数

~      反码(取反)~6= -7

将两个变量值互换

1、通过第三方变量。开发常用

int temp;

temp = n;

n = m;

m = temp;

2、不用第三方变量。

n = n + m;//如果n和m的值非常大,容易超出int范围。

m = n - m;

n = n - m;

3、n = n ^ m;

     m = n ^ m;//(n^m)^m;

     n = n ^ m;//n ^ (n ^ m)

三元运算符

(条件表达式)?表达式1:表达式2;

如果条件为true,运算后的结果是表达式1

如果条件为false,运算后的结果是表达式2

例子

获取两个数中的最大值

int  x = 4,int y = 5,z;

z = (x>y)?x:y;//z储存两个数中的最大值。



----------- android培训java培训、java学习型技术博客、期待与您交流! ------------







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在信号处理领域,DOA(Direction of Arrival)估计是一项关键技术,主要用于确定多个信号源到达接收阵列的方向。本文将详细探讨三种ESPRIT(Estimation of Signal Parameters via Rotational Invariance Techniques)算法在DOA估计中的实现,以及它们在MATLAB环境中的具体应用。 ESPRIT算法是由Paul Kailath等人于1986年提出的,其核心思想是利用阵列数据的旋转不变性来估计信号源的角度。这种算法相比传统的 MUSIC(Multiple Signal Classification)算法具有较低的计算复杂度,且无需进行特征值分解,因此在实际应用中颇具优势。 1. 普通ESPRIT算法 普通ESPRIT算法分为两个主要步骤:构造等效旋转不变系统和估计角度。通过空间平移(如延时)构建两个子阵列,使得它们之间的关系具有旋转不变性。然后,通过对子阵列数据进行最小二乘拟合,可以得到信号源的角频率估计,进一步转换为DOA估计。 2. 常规ESPRIT算法实现 在描述中提到的`common_esprit_method1.m`和`common_esprit_method2.m`是两种不同的普通ESPRIT算法实现。它们可能在实现细节上略有差异,比如选择子阵列的方式、参数估计的策略等。MATLAB代码通常会包含预处理步骤(如数据归一化)、子阵列构造、旋转不变性矩阵的建立、最小二乘估计等部分。通过运行这两个文件,可以比较它们在估计精度和计算效率上的异同。 3. TLS_ESPRIT算法 TLS(Total Least Squares)ESPRIT是对普通ESPRIT的优化,它考虑了数据噪声的影响,提高了估计的稳健性。在TLS_ESPRIT算法中,不假设数据噪声是高斯白噪声,而是采用总最小二乘准则来拟合数据。这使得算法在噪声环境下表现更优。`TLS_esprit.m`文件应该包含了TLS_ESPRIT算法的完整实现,包括TLS估计的步骤和旋转不变性矩阵的改进处理。 在实际应用中,选择合适的ESPRIT变体取决于系统条件,例如噪声水平、信号质量以及计算资源。通过MATLAB实现,研究者和工程师可以方便地比较不同算法的效果,并根据需要进行调整和优化。同时,这些代码也为教学和学习DOA估计提供了一个直观的平台,有助于深入理解ESPRIT算法的工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值