天南私塾

天行健,君子以自强不息

0%

无意中发现非系统盘根目录下出现Msdia80.dll这样的文件,这是什么呢?

出现此问题的原因:计算机上安装了 Microsoft Visual C++ 2005 可再发行组件时,Msdia80.dll文件被错误安装在其他驱动器的根文件夹中。

它的正确路径应该是”C:\Program Files\Common Files\Microsoft Shared\VC\msdia80.dll” 。

如果在正确路径下有这个文件,那你可以删了这个文件。

如果没有这个文件,解决的方法:

先把这个msdia80.dll复制到C:\Program Files\Common Files\Microsoft Shared\VC\内。

然后管理员运行命令提示符,(用win+R运行CMD时可能会失败),如图。

输入如下命令回车(注意一定不要输错,参考图片):

regsvr32 "C:\Program Files\Common Files\Microsoft Shared\VC\msdia80.dll"

提示成功!这样d/e盘根目录出现的Msdia80.dll文件就可以删除了。

不经过以上步骤随意删除也许会引起未知的奇怪问题,所以遇到dll文件还是要慎重处理

师傅遇见我的时候,第一句话就是‘你与贫道有缘’。这古老且笨拙的开场白像阵阵松涛卷入冰天雪地,那一年,我八岁。那一年,我记忆中的家乡模糊不清。那一年,我不知道我是谁。
​ 师傅带我入宗,我记不清那宗名是什么,却记得师傅平淡的话语,“修心十年,我带你找回你自己。”师傅说我是修道奇才,他重来没有遇见过像我一样的修道天赋。师傅的师傅说我若修道有成必定是自成一派。
​ 师傅的师傅和师傅都告诉我,修道就是为了做仙。宗里每一个人都想做仙,做仙很好很舒服。他们说我将来一定能做仙。
​ 我没有告诉师傅,其实我讨厌修道。十年里我每晚都在做同样一个梦,梦中有双明亮的大眼睛一闪一闪。那一年,我十八岁。我没有家乡,我不知道我是谁,我也不知道那梦里的眼睛是何意。那一年,师傅带我去找回我自己。
​ 我们踏遍了山河,终究不知我是我。
​ 那一天,师傅寿终,给我留下一锦囊,让我寿终的时候打开。师傅终究是没有成仙,要做仙实在是太难。我在师傅的坟前哭了三天三夜,醒来的时候,我遇见一女子,她有一双明亮的大眼睛。
​ 她陪我度过无数个漫长的夜晚,终于在一个孤独的夜晚离开人世,我捧着她苍老的面容深深埋在心里。我想我能猜到我是谁了。
​ 我感觉越来越累。镜中的容颜一如冰天雪地的那一年,那一年,我八岁。师傅说成仙后也可青春永驻。
​ 我打开了师傅留下的锦囊,里面空空如也。
​ 我在她的坟前枯坐了一年,自尽而亡。
​ 当我再次醒来的时候,我坐在冰天雪地里,我知道我的猜测是正确的。我遇见了一个老人,老人说,你与贫道有缘。
​ 阵阵松涛卷入冰天雪地,那许多年里,我看见了许多不同的女子,他们都有一双明亮的大眼睛。
​ 当我抬头的那一瞬间,我知晓了一切。道主说,三千年轮回,入仙需斩断一切尘念,斩断,即可做仙。
​ 我在道前深深一叩首,三千年弹指一瞬间。我回首,答道,不做仙。
​ 这一年,我被打入凡尘
​ 这一年,我知道我的家乡在哪
​ 这一年,我知道我是谁
​ 这一年,我自创宗门,只为等待你今世的一回眸
​ 在无数个年头后,我寿终之时,你温柔的将我苍老的容颜捧入心中,一如轮回中的我。
​ 我不会告诉你,我在道前一叩三千年,回首红尘却不做仙。
​ 这一世,我不愿做仙。

Java是强类型语言,每个变量都需要声明其数据类型.
Java数据类型可分为基本数据类型和引用数据类型.

基本数据类型

数值型

整数类型

byte : 一个字节
short : 两个字节
int : 四个字节
long : 八个字节

Java程序中,我们能看到的数字,默认都是int类型的,若要表示一个大额的long数,则需要加L 如: 8800000000L

浮点类型

float : 四个字节 -3.403E383.403E38
double : 八个字节 -1.798E308
1.798E308

浮点型的表示形式

十进制数形式: 3.14 314.0 0.314

科学计数法: 314E-2 312e2 314E2

E2 表示 10^2 十的平方

Java中的浮点类型默认是double,想要表示一个float类型的值时,需要加F/f 如:

1
2
3
float f = 3.14F;
double d1 = 3.14;
double d2 = 3.14D;

浮点类型不适合在不允许有误差的金融领域计算.
如需要无误差的精准计算,需要用到BigDecimal类.

1
2
3
4
5
6
7
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //结果为false

float f1 = 45678900f;
float f2 = f1 + 1;
System.out.println(f1==f2);//结果为true

浮点数值不精确,不能用于比较

字符型

char : 两个字节

char类型用来表示在Unicode编码表中的字符.可允许65536个字符.

Unicode具有从0到65535之间的编码,他们通常从 \u0000\uFFFF之间的十六进制值来镖师.(u表示Unicode)

java中生命char用单引号 如 char c = 'a'
String是字符串,也就是字符序列,由字符组成.用双引号
‘A’是一个字符,而”A”是指含有一个字符的字符串

布尔型

boolean : 一位

boolean类型有两个常量值,truefalse,在内存中占一位(不是一个字节),不可以使用0和非0来代替,通常用于逻辑判断.

引用数据类型(四个字节)

接口

数组

变量

变量的本质是”可操作的存储空间”.

Java是强类型语言,每个变量都必须先声明类型.数据类型决定了其存储空间的大小.

变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域.在其生命后才可以分配响应长度的存储空间.

每个变量都有类型,类型可以是基本类型,也可以是引用类型.
变量名必须是合法的标识符.

局部变量

方法中或者语句块中,生命周期为从声明位置开始,到方法结束或者语句块结束.
局部变量使用之前必须先声明,后初始化(即赋值).

成员变量 (实例变量)

类内部,方法外部定义的变量,从属于对象,生命周期伴随这个对象始终.
对象创建.成员变量跟着创建,对象消失,成员变量跟着消失
若未初始化,则程序自动初始化为默认值

数据类型 默认值
int 0
double 0.0
char ‘\u0000’
boolean false

静态变量 (类变量)

类内部,使用static定义,从属于类,生命周期伴随类始终

常量 (Constanti)

常量通常指一个固定的值,在Java语言中,主要是利用关键字final来定义一个常量.
常量一旦被初始化之后,不可以再更改其值.

一般将’1’,’2’,’hello’等称之为 字面常量
用final修饰的称谓符号常量.

注意 常量的命名规则是:由大写字母和’_’组成,如:MAX_VALUE;

标识符用来给变量,类,方法命名

命名规则

  • 标识符由字符,下划线”_” , 美元符”$”,和数字组成.
  • 标识符首字符不能使数字
  • 标识符不可以是关键字,如 java,class等.

不遵守规则会报错

使用规范

  1. 类名: 组成类名的每个单词首字母大写
  2. 表示方法和变量名的标识符,第一个单词的首字符小写,其他单词的首字符大写,即”驼峰原则
  3. 标识符中最好不要出现汉字

不遵守规范,不会报错,但是人人都遵守规则能带来便利

注释三种

  • 单行注释 // 开头
  • 多行注释 /* 开头,*/ 结尾
  • 文档注释 /** 开头,*/ 结尾

Java编译时,会过滤注释,不会出现在字节码文件中
注释方便提高程序的可读性,相当于对代码进行说明
文档注释可以生成API说明

1
2
3
4
5
6
7
8
9
10
/**
* 这是一个方法注释
*/
public void test(String lpp /*这是一个行内多行注释 */) {
//单行注释 后面所有内容都将被注释
System.out.println("I'm lpp");
/*多行注释
多行注释
多行注释*/
}

鼠标右键新建java project,在SRC目录下新建类Welcome

输入代码

Welcome.java
1
2
3
public static void main(String[] args){
​ System.out.println("I'm sslin,HelloWorld");
}

在项目路径下,可以看到
src: 此目录下是java文件
bin: 此目录下是编译完成的class文件

执行main方法的三种方式

  1. Ctrl+F11

IntelliJ IDEA: 下载地址
Eclipse之后最火的IDE,个人认为比Eclipse更简便,更易学
需要购买以后才可使用
破解推荐: http://idea.lanyus.com/

Eclipse: 下载地址
最常用开发工具之一,无需破解

MyEclipse: 下载地址
原先只是Eclipse的插件,后已经独立具备Eclipse的所有功能以及插件集成,需购买

IDE安装32位还是64位,跟JDK的位数相关
必须先安装JDK,才可安装IDE

Notepad++: 下载地址
个人认为比较好用的文本编辑器工具

Java三大版本

  • JavaSE: 标准版 定位在个人计算机应用
  • JavaEE: 企业版 定位在服务器端应用
  • JavaME: 微型版 定位在消费性电子产品应用

JavaEE包含JAVASE,所以要先学JavaSE
JavaME不同于安卓开发,已逐步被安卓取代


JDK介绍

Java开发工具包 JDK 下载地址
JRE是Java程序的运行环境
JVM是实现跨平台的根本

Java环境配置

在我的电脑属性中,点击高级系统设置,环境变量,系统变量中, 新建变量,变量名:JAVA_HOME,变量值为JDK安装路径
在PATH变量中,加入%JAVA_HOME%\bin
JDK1.5以上无需配置classpath




Java是解释型语言

JDK包括JRE和编译器调试器等用于程序开发的文件
JRE包括JVM虚拟机,库等文件
JVM是执行bytecode字节码的”虚拟计算机”

所以,若只需要运行Java程序则只需安装JRE即可.若需要开发,需下载JDK

.Java文件通过编译器生成.class文件,最终通过解释器解释运行

根据不同的操作系统,不同的虚拟机来解释执行


# 简单举例 如 我在F:\mycode下新建文件 `Welcome.java`
Welcome.java
1
2
3
4
5
6
7
8
9
public class Welcome {
public static void main(String[] args){
​ System.out.println("I'm lpp,Hellow World");
​ }
}

class car {

}

windows+r打开运行命令框,输入cmd,执行以下命令
F: (进入F盘)
cd F:/mycode (进入mycode文件夹下)
javac Welcome.java (javac命令可以编译java文件,生成class字节码文件)
java Welcome (java命令,会解释执行Welcome.class文件)


>- 一个Java文件可以有多个class类,编译后会生成多个class文件,但是只能有一个public类. - Java文件名需与其内public类名相同. - Java执行class文件,需以main方法为入口,否则不可执行.
![](https://javabasics-1257838768.cos.ap-beijing.myqcloud.com/%E5%88%9D%E8%AF%86Java/%E4%BA%86%E8%A7%A3Java/welcome.png) ![](https://javabasics-1257838768.cos.ap-beijing.myqcloud.com/%E5%88%9D%E8%AF%86Java/%E4%BA%86%E8%A7%A3Java/cmd.png) ![](https://javabasics-1257838768.cos.ap-beijing.myqcloud.com/%E5%88%9D%E8%AF%86Java/%E4%BA%86%E8%A7%A3Java/cmd%E8%BF%90%E8%A1%8C.png) ![](https://javabasics-1257838768.cos.ap-beijing.myqcloud.com/%E5%88%9D%E8%AF%86Java/%E4%BA%86%E8%A7%A3Java/Fpan.png)

计算机语言发展史

  • 第一代 机器语言(由0和1构成)
  • 第二代 汇编语言(助记词,单词构成)
  • 第三代 高级语言



常用高级语言有一些几种

  • C语言: 高级语言的鼻祖,1972年贝尔实验室发明.
  • C++: 混合语言,可以面向对象,也可以面向过程.
  • Java: 广泛应用于企业及软件开发,安卓移动开发等.
  • PHP: 一般用于web领域开发,中小型网站适合.
  • Object-C/OC: C语言衍生而来,主要用于苹果软件开发.
  • Swift: 2014年苹果新发布的语言
  • JavaScript: 跟Java语言无任何关联(可能是因为当时为了蹭热度),H5前端开发的核心
  • Python: 读’[ˈpaɪθən]’,广泛应用于图形处理,科学计算,web编程,多媒体应用,引擎开发等.
  • C#: C SHARP,微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。(据说是当初微软为了抗衡被迅速推广的Java)
  • Fortran: IBM于1954年提出,目前有很多工程领域仍在使用,是第一款高级语言.
  • Basic: 已逐步要退出历史舞台.
  • COBOL: 主要用于需精准处理大量数据的商业领域,如金融,银行.
  • Pascal: 多用于大学教育,因缺少支持,已逐步淡出.