一、java的安装及环境变量的配置
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装成功后找到对应的sdk安装的目录配置path环境变量
2.任意目录下创建一个HelloWord.java文件
class HelloWord { public static void main(String [] args){ System.out.println("helloword"); } }
3.打开cmd运行HelloWord.java
4.java中的构造方法
class HelloWord{ //java中的构造方法名必须和类名相同 public HelloWord(String name){ System.out.println("my name is "+name); } public static void main(String[] args){ HelloWord myName = new HelloWord("ceshi"); } }
5.给类中的构造方法传参及访问类中的方法及成员变量
class Puppy{ private int newAge; //构造方法 public Puppy(String name){ System.out.println("my dog's name is " + name); } //赋值年龄为全局变量 public void setAge(int age){ newAge = age; } // 获取年龄的值 public int getAge(){ System.out.println("my dog's age is "+newAge); return newAge; } public static void main(String[] args){ //实例化对象 Puppy myPuppy = new Puppy("tom"); // 通过方法设定年龄 myPuppy.setAge(2); // 访问类中的方法 myPuppy.getAge(); // 获取类中的成员变量 System.out.println("变量值 :" +myPuppy.newAge); } }
6、进制的转换
1.其他进制到十进制的转换
得到下面数据的十进制值:
其中二进制是以0b开头的
八进制是以0开头的
十六进制是以0x开头的
0b10101 = 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0
= 16 + 0 + 4 +0 +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
2、十进制到其他进制的转换
得到下面数据的二进制,十进制,十六进制
52分别得到二进制,十进制,十六进制
二进制: 0b110100 八进制 : 064 十六进制:0x34
52 / 2 = 26 ... 0 52 / 8 = 6 ... 4 52 / 16 = 3 ... 4
26 / 2 = 13 0 6 / 8 = 0 6 3 / 16 = 0 3
13 / 2 = 6 1
6 / 2 = 3 0
3 / 2 = 1 1
1 / 2 = 0 1
java中的数据类型
byte 字节数 :1 范围: -128 ---127 short 字节数: 2 范围:-2^15 --- 2^15-1 int 字节数:4 范围-2^31---2^31 -1
long 字节数:8 范围:-2^53---2^53-1
float 字节数:4 double 字节数: 8 char 字节数: 2 boolean :字节数1
long j = 1000000000000; //报错
long j = 1000000000000L;
float f = 12.324 ; //报错
float f = 12.234F;
注:长整型后缀用L或l标记,单精度浮点数用F或f标记
字符变量
char a = 'a';
变量的作用域:
变量定义在哪个大括号内,它就在这个大括号内有效;
并且,在同一个大括号内不能同时定义同名的变量
初始化值:
没有初始化值的变量不能直接使用,定义的时候要给值.
定义变量的格式:
数据类型 变量名 = 初始化值;
参与运算的数据类型必须一致。
/* 注意:默认转换(从小到大的转换) A:byte,short,char—int—long—float—double B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型 面试题: byte b1=3,b2=4,b; b=b1+b2; b=3+4; 哪句是编译失败的呢?为什么呢? b = b1 + b2;是有问题的。 因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。 常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。 */ class DataTypeDemo6 { public static void main(String[] args) { //定义了三个byte类型的变量,b1,b2,b3 //b1的值是3,b2的值是4,b没有值 byte b1 = 3,b2 = 4,b; //b = b1 + b2; //这个是类型提升,所有有问题 b = 3 + 4; //常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。 } }
/* 看程序写结果 通过字符和一个整数相加,我们给出一张表:ASCII码表。 通过看完这张表以后,我们要记住三个值: 'a' 97 'A' 65 '0' 48 */ class DataTypeDemo8 { public static void main(String[] args) { //直接输出一个字符 System.out.println('a'); //a //输出一个字符和一个整数做加法 System.out.println('a'+1); //98 } }
/* 看程序写结果 字符串数据和其他数据做+,结果是字符串类型。 这里的+不是加法运算,而是字符串连接符。 */ class DataTypeDemo9 { public static void main(String[] args) { System.out.println("hello"+'a'+1); //helloa1 System.out.println('a'+1+"hello"); //98hello System.out.println("5+5="+5+5); //5+5=55 System.out.println(5+5+"=5+5"); //10=5+5 } }
/* 思考题1:请问下面这个有没有问题 double d = 12.345; float f = d; 思考题2:看看下面两个定义有没有区别呢? float f1 = (float)12.345; float f2 = 12.345f; f1其实是通过一个double类型转换过来的。 而f2本身就是一个float类型。 */ class DataTypeDemo5 { public static void main(String[] args) { //把double赋值给float,加了强制类型转换 double d = 12.345; float f = (float)d; //看看下面两个定义有没有区别呢? float f1 = (float)12.345; float f2 = 12.345F; } }