Java学习笔记(1)

JDK:一组开发工具打包在一起。 Java Development Keys

www.oracle.com or  www.sun.com sun官方网站下载JDK

windows配置环境变量(用户变量和系统变量)

检验环境变量Path是否配置成功:在cmd窗口里面输入java -version

notepad++ 里面输入源代码,经过编译(javac)把源代码变成类文件,类文件能由计算机运行。


第三集:java基础知识
主要内容:1、什么是环境变量,2、JDK里面有些什么。3、什么是JRE和JVM。

环境变量通常是指在操作系统当中,用来指定操作系统运行时需要的一些参数。环境变量通常为一系列的 键值对
比较经典的环境变量(windir,OS)

Path环境变量是操作系统外部命令搜索路径。(操作系统执行命令实际上是执行exe文件,Path环境变量用于存放路径目录)

classpath环境变量是类文件搜索路径。(为“英文句号”。代表当前目录)

JDK目录:

bin目录: 可执行文件(javac.exe编译java文件,java.exe)
demo和sample目录:java例子
include目录:C语言程序
jre目录:java运行时环境
lib目录:java所需要的包文件
src.zip:java的JDK的部分源文件。

JRE:Java Runtime Environment。java运行环境。
包括以下几个部分:1、java虚拟机、2、java平台核心文件。3、其它支持文件。

JVM:Java Virtual Machine(java虚拟机),是一个由软件虚拟出来的机器。

不同操作系统有不同的虚拟机。将代码转换为某的平台执行。

编译器:把源文件翻译为虚拟机理解的代码
虚拟机:将类文件翻译为操作系统可以理解的代码


第四集:Java的变量
主要内容:1、什么是变量。2、变量的声明。3、变量分为哪些类型。

要将信息存储在计算机当中,就必须指明信息存储的位置和所需的内存空间;在Java语言中,使用声明语句来完成上述任务。


声明解决两个问题:age这个变量放在哪里(变量名),占多大内存(变量类型)。


合法(用编译器检查)。合理(用命名规范检查)
本节总结:变量的作用和类型, 变量的命名规范。

第五集:Java基本数据类型
主要内容:1、Java数据类型分类。2:、boolean型变量特征。3、char类型变量特征。4、数值型变量特征。

boolean类型适用于逻辑运算,一般用于程序流程控制。在Java当中的boolean类型只有两种取值可能true和false。

char类型变量用来表示通常意义上的字符。Java字符使用 Unicode字符集

ASII码:American Standard Code for Information Interchange。 对字符集理解从几下方面入手:
1、在计算机当中,所有数据都需要使用二进制的数字表示。
2、类似于a, b, c, 之类的字母无法直接用二进制表示。
3、所以就将所有常见的符号进行编号。标准ASII码使用7位2进制数来表示字符。
4、7位2进制数可以表示所有的数字,大小写字母以及一些常见符号。

Unicode为每种语言的每个字符设定了统一并且唯一的二进制码;满足了跨语言文本转换和处理需求;在互联网当中扮演着非常重要的角色,使用数字0-0x10FFFF来表示字符;最多允许有1114112个字符。

字面量:
1、整数字面量为整型(int);
2、小数字面量为双精度浮点型(double);

int  j = 0.5 * 10; 
报错:可能损失精度。因为Java首先将低数据类型转换为搞数据类型。运算结果为表达式中最高的数据类型。

数值型类型表数范围关系:
byte < short < int < long < float < double;

第七集:运算符与表达式
主要内容:1、运算符的分类。2、各种运算符的使用方法。3、什么是表达式。

Java当中的运算符:算术运算符:+、-、*、/、%、++、--
关系运算符:>,<,>=,<=,==,!=
布尔逻辑运算符:!,&,|,^,&&,||
位运算符:&, |, ^,  ~,  >>,  <<,  >>>
赋值运算符:=。(扩展赋值运算符)
字符串连接运算符:+

要点一:int i = 3/2;     请问i的值是几?
一个运算过程的结果是什么类型,取决于整个运算中所有操作数里面的最大的类型。

要点二:i++和++i的区别是什么?
1、两者都是给i的值加一。
2、i++:先将i的值参与运算,再把i的值加一。++i:先把i的值加一,再参与运算。

逻辑运算符:计算真和假。 注意短路与&&和逻辑与&的区别。
a&b。逻辑与&:不管a是不是false,都会先判断a再判断b。
a&&b。短路与&&;首先判断a是不是false,如果a为false,则不会判断b。


表达式是符合一定语法规则的运算符和操作符的序列
表达式的值:对表达式中的操作数进行运算得到的结果成为表达式的值
表达式的值的数据类型即为表达式的类型

第八集:分支语句
主要内容:1、程序运行流程分类。2、if…else…分支结构,3、switch分支结构

程序运行流程的分类:顺序结构、分支结构、循环结构

使用notepad++ 编辑程序,在命令行提示符中编译时出现错误,提示为:“错误: 编码GBK的不可映射字符”。该怎么操作才可以顺利编译。
这是因为:由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时它己经由file.encoding格式转化为UNICODE格式了。当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

解决办法是:应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java,这下没警告了,运行也正确了在JCreator 4中设置:菜单:Configure --> Options --> JDK Tools --> Compiler,选中<Default>,然后选Edit,Parameters里面,最前面添加:-encoding UTF-8。
Parameters原来的默认值为:-classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]
修改后为:-encoding UTF-8 -classpath "$[ClassPath]" -d "$[OutputPath]" $[ModJavaFiles]

switch(表达式)里面的类型:byte、short、int、或者char。
switch程序会执行匹配后的每条语句,直到遇到break为止。

第九集:练习课(二)
练习目标:熟悉if…else…结构的使用方法
练习一:将学生的分数按照标准分为优良中差四个级别
步骤:1、创建一个名为Test01的类;2、在Test01类中加入主函数;3、在主函数当中定义一个整型变量,用于表示学生的分数;4、使用if…else…结构对分数进行分级。

练习二:猜拳游戏
步骤 :1、创建一个名为Test02的类;2、在Test02类中加入主函数;3、在主函数当中定义两个char类型变量,分别代表链各个玩家的出拳;4、使用if…else…结构对结果进行判断。

第十集:循环语句
主要内容:1、循环结构;2、for循环语句;3、while循环语句

第十一集:练习课(三)
练习目标:使用for循环
练习1:打印出100-200之间所有的素数
素数: 一个数字只能被1和自己整除。
步骤:1、定义一个类,名为TestPrimeNumber;2、在类当中定义主函数;3、用for循环打印出所有在100-200当中的数字;4、在for循环中,每当循环执行一次,就判断循环变量的值是否为素数,如果是,就将循环变量当前值打印出来;
    a)判断n是否为素数,首先用2除以n,如果除不尽,再用3除以n,以此类推,如果从2到n-1都无法整除n,那么n就是素数。


练习2:在命令行当中打出如下图形

步骤:1、定义一个类,名为TestTriangle;
2、在类当中定义一个主函数;
3、使用for循环打印四行“*”;
4、打印四行,每一行当中包含四个“*空格”;

输出结果:


5、打印四行,第一行当中包含一个“*空格”,第二行两个,以此类推;
发现输出个数和行数一样: for(int k = 0; k < i; k++)
输出结果


6、定义一个变量输出*空格前面的空格数,第一行首先打印三个,第二行两个,以此类推;


作业:1、优化求素数程序;
2、如果要求编写一个程序,可以打印出任意行的类似图形。

第十二集:面向对象基础(一)
主要内容:1、什么是面向对象;2、应该如何学习面向对象;3、面向对象的思维方式。

面向对象是一种编程方法,一种思维方式,面向对象不是一种编程语言。
应该如何学习:1、掌握一门面向对象语言的语法;2、掌握面向对象的思维方式;3、熟悉面向对象设计原则;4、掌握面向对象的设计模式。

思维方式:1、首先确定谁来做,其次确定怎么做;2、首先考虑整体,其次考虑局部;3、首先考虑抽象,其次考虑具体。

第十三集:面向对象基础(二)
主要内容:1、创建类的方法;2、创建对象的方法;3、对象和对象的引用

calss 类名{
    属性;
    方法;
}
属性也叫成员变量,主要用于描述类的状态
方法也叫成员方法,主要用于描述类的行为

类的表示方法:


生成对象的方法
格式: 类名  对象名 = new 类名( );
例如:Dog dog = new Dog( );

堆内存:存放对象本体。栈内存:存放对象名字(引用)。

1、Dog dog = new Dog();
    创建一个Dog的引用
2、Dog dog =  new Dog();
    创建一个Dog的对象
3、Dog dog  =  new Dog();
    将创建的Dog对象赋给这个引用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值