前言
java初学,感觉和c语言的初始架构挺像的
(题外话,那个module有点像是verilog里面的)
一、变量与常量
1:变量分为局部,成员,静态;成员变量和静态变量我还不是特别理解
局部变量具体用法可参考c语言,先声明一个变量,后续需要赋值进行初始化
//这是一个关于变量的简单java程序
package demo;
public class demo2 {
public static void main(String[] args){
int a;
a=3;
System.out.println(a);//差点忘记了,代码还是得多练啊;
}
};
2:常量
常量一旦用final赋值,将无法再改变
package demo;
public class demo3 {
public static void main(String[] args){
final int a=3;//用了final就代表着常量已经被固定了,无法更改
System.out.println(a);
}
}
二、数据类型
1.基本数据类型
字节长度
byte 1字节 ;short 2;int 4; long 8;
float 4; double 8;
整型
package demo;
public class demo4 {
public static void main(String[] args){
int a=100;//十进制
int b=015;//八进制
int c=0xff;//十六进制
int d= 0b1010_1000;//二进制
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
整型常量默认都是int类型
浮点型
基本上都用double而不用float,默认是double
package demo;
public class demo5 {
public static void main(String[] args){
double a1 = 3.14;
double b1 = 3,14;
System.out.println(a1);
System.out.println(b1);
}
}
这个代码报错了,很奇怪,报错原因是 java: 需要<标识符>
找到错误了,我b1那里的小数点写成逗号了;
一个小建议,类名最好需要大写例如,demo5改写成Demo5会好一点,更符合规范
浮点型最好不要用于比较, "="是赋值 "=="是比较.
字符型
用的是Unicode编码
默认用char
package demo;
public class Demo6 {
public static void main(String[] args){
char a='这是一个汉字'; //用单引号就可以了
System.out.println(a);
}
}
不出意外,这个代码也报错了,后来发现char只能表示单字符,(java中没有字符串)而我用的是多字符,所以需要将char改为String
需要注意的是,首字母需要大写!!
转义字符
布尔型
占一个或者四个字节
只能有true或者false,不能用1和0.这和c语言有点不一样
package demo;
public class Demo7 {
public static void main(String[] args){
boolean a = true;
boolean b = true;
if (a) {
System.out.println(a);
}else{
System.out.println(b);
}
}
}
这次终于对了,输出结果是 true
2.运算符
和c语言的很像,可以帮助理解
逻辑运算符
/**
* 测试逻辑运算符
*/
package demo;
public class Demo8 {
public static void main(String[] args){
boolean a = true;
boolean b = false;
System.out.println(a&b);//与,会执行完所有的语句
System.out.println(a|b);
System.out.println(!b);
System.out.println(a&&b);//短路与,只要有一个是错的就自动停止了
System.out.println(a||b);
}
}
这是代码运算结果
位运算符
是二进制的计算,与逻辑运算很像,判断时需要先转化为二进制,
package demo;
public class Demo9 {
public static void main(String[] args){
int a = 7;
int b = 8;
System.out.println(a & b);//与运算,有0即为0
System.out.println(a|b);//或运算,有一个1即为1
System.out.println(a^b);//异或运算,不同则取1
System.out.println(~b);//取反
package demo;
public class Demo9 {
public static void main(String[] args){
int a = 7;
int b = 8;
System.out.println(a & b);//与运算,有0即为0
System.out.println(a|b);//或运算,有一个1即为1
System.out.println(a^b);//异或运算,不同则取1
System.out.println(~b);//取反
int c = 5<<2;//相当于5*2*2
System.out.println(c);
System.out.println(40>>3);//相当与40/8.最快的办法
}
}
运算结果如下
字符串连接符
当其中有一个是字符的时候.+就自动变为字符串连接符
package demo;
public class Demo10 {
public static void main(String[] args){
int a = 3;
int b = 4;
System.out.println(a+b);
String c = "3";
int d = 4;
System.out.println(c+d);
char e = 'h';
char f = 'i';
System.out.println(e+f);
System.out.println(""+e+f);
}
}
代码运行结果如下
需要注意的是,必须是String而不是char,解决办法加上,在前面加一个""+
条件运算符
package demo;
public class Demo11 {
public static void main(String[] args){
int score = 90;
String b =score<60?"不及格":"及格";
System.out.println(b);
}
}
结果如下
运算符优先级
3.类型转换
自动数据类型转换
容量少的数据类型可以转化为容量大的转化类型,指的是固定的容量,而不是赋值的容量
/**
* 这是一个测试自动数据转换的代码
*/
package demo;
public class Demo12 {
public static void main(String[] args){
int a = 2441;
long b = a;
//int c = b;//int类型不能自动转换为long类型;
byte c = 123;
//byte d = 1234;//报错了,因为byte只能涵盖-128-1278
}
}
强制类型转化
又称为造型(cast)
package demo;
public class Demo13 {
public static void main(String[] args){
double a = 3.1831763;
int b =(int)a;
System.out.println(b);//会丢失小数部分
byte c =(byte)300;//大于了范围会随机生成一个数,300随机生成44
System.out.println(c);
}
}
4.拓展
有关Scanner的用法
/**
* 这是一个有关scanner的测试文件
* 做一个拓展的小例子
*/
package demo;
import java.util.Scanner;
public class Demo14 {
public static void main(String[] args){
Scanner a = new Scanner(System.in);
System.out.println("请输入用户名");
String name = a.nextLine ( );
System.out.println("请输入你的年龄");
int age = a.nextInt();
System.out.println("请输入你的月薪");
int money = a.nextInt();
System.out.println("你的名字是:" + name);
System.out.println("你的年龄是:" + age);
System.out.println("你的月薪是:" + money);
}
}
类似与一个c语言中的人机交互,键入式输入
一个小tips
要是打这些东西打烦了,比如public static void main() 可以直接打main,在IDLE上就会直接打出public static void main(),System.out.println()的缩写则为sout,笔者认为还是蛮有用的
总结
笔者今天学习了java的一些基本的小概念