学习计算机语言,首先要学习的是环境搭建,若是代码写的很纯熟,对着没有java环境的电脑却无从下手,那可就要贻笑大方了。
java之所以能够跨平台,靠的就是java虚拟机,简写JVM,只需要运行写好的java代码,则安装jre(Java Runtime Environment java运行环境)就够了,而作为致力于开发的人员,就要安装jdk(Java Development Kit Java开发工具包)。jre是包含在jdk中的,它们的下载地址为www.oracle.com或 java.sun.com 。自己携带安装好的jdk文件夹,只要配置路径,到新的机器也可以使用。
配置jdk路径:首先找到jdk中javac的路径并复制(在bin文件夹中),右键我的电脑->属性->高级->环境变量->系统变量,双击path路径,在前方粘贴javac的路径并以分号(;)结束,注意保留原有的其他路径。
配置技巧:若是jdk文件夹路径可能会有所改动,可以先在系统变量中添加一个JAVA_HOME,值为jdk文件路径,然后在path中添加%JAVA_HOME%\bin; 这样就将容易变化的jdk路径单独提取出来,便于修改。
用记事本编写java小程序并运行的过程:
1、开始菜单新建记事本(不要在某处右键新建),写好程序后保存时,选择所有文件类型,名称的最后要以.java为后缀。
2、开始->运行->cmd 进入DOS,用命令行语句找到保存的文件路径,例如第一步的文件为Demo.java
3、javac Demo.java回车,没有反应说明编译成功,再敲入java Demo,对生成的class文件进行运行即可
增强阅读性是写代码的前提。个人理解:因为编程是需要众人配合的,也是需要相互沟通,共同进步的。所以注释是不可或缺的。java中注释有三种形式:
单行注释 // ...
多行注释 /*...
..................*/ (注意:多行注释中不能包含多行注释)
说明书内容 /**.....*/
当然,注释也可用于屏蔽部分代码便于调试。
java中是严格区分大小写的,编程中通常起名的方式:
包名:xxxyyyzzz
类名接口名:XxxYyyZzz
变量名和函数名:xxxYyyZzz
常量名:XXX_YYY_ZZZ
这样不仅方便自己阅读,也有助于他人更快地理解。约定俗成的东西,养成好习惯有助于大家沟通。
基础组成有:关键字、标识符(起名不能用关键字,数字不能开头,范围是大小写英文字母,0-9数字以及$符号)、注释、常量和变量、运算符、语句、函数、数组
计算机采用二进制,每个字节有8位。负数的二进制表现形式为取反再+1;
十进制转换为二进制:除以2保留余数,直到商为0,将各余数倒序输出即可。
二进制转换为十进制:个位*2(0)+十位*2(1)。。 例如二进制数110=0*2(0)+1*2(1)+2*2(2)=6
十六进制为2的4次幂,4位二进制数可组成1位十六进制数。
毕向东老师 视频中进制转换的小例子:(包含了很多知识点,通过注释便于复习)
class Test
{
public static void main(String[] args)
{
toBin(-6); //调用toBin类,计算-6的二进制数
toHex(-60);//调用toHex类,计算-60的十六进制数
toBa(60); //调用toBa类,计算十进制60转换成的八进制数
System.out.println(Integer.toBinaryString(6)); //用java定义好的类输出6的二进制数
System.out.println(Integer.toHexString(6)); //用java定义好的类输出6的十六进制数
}
public static void toBin(int num) //十进制转换为二进制
{
trans(num,1,1); //二进制一位上数字为一的数是1,二进制只需右移一位,所以传参是两个1
}
public static void toBa(int num) //十进制转换为八进制
{
trans(num,7,3); //二进制三位上数字都为一的数是7,8是2的3次幂,需右移3位
}
public static void toHex(int num) //十进制转换为十六进制
{
trans(num,15,4); //二进制四位上都是1的数为15,16是2的4次幂
}
public static void trans(int num,int base,int offset) //定义进制转换的一个通用类
{
if(num==0) //判定传入的数是否为0
{
System.out.println(0); //因为0的任意进制都为0,所以输出0
return ; // 返回则不必执行下面的多行代码
}
char[] chs = {'0','1','2','3' //定义数字对应符号的数组,最高可用于十六进制
,'4','5','6','7'
,'8','9','A','B'
,'C','D','E','F'};
char[] arr = new char[32]; //定义一个32位的字符数组存储转换后的进制符号
int pos = arr.length; //将数组长度传递给pos
while(num!=0) //直到num所有有效位都移走才停止
{
int temp = num & base; //新建一个变量存起num转换后的最后一位代表的数字
arr[--pos] = chs[temp]; //通过chs字符数组找到对应的字符并存到arr的倒数第二位
num = num >>> offset; //通过无符号右移,移除相应位数,准备下次转换
}
for(int x=pos; x<arr.length; x++) //从有效位一直到最后一位
{
System.out.print(arr[x]); //输出转换后的结果
}
return ;
}
}