一,数据类型与变量
(一)基本数据类型(内置类型)
(二)引用数据类型
String
数组
接口
类
......这些类型定义的变量都是存储地址的变量
String str = "abcde" ; //str 属于引用变量,这个变量里面存的是地址
注意
(1)Java中不允许使用未初始化的局部变量。
(2)所有的符号定义的数据都是有符号的,最高位是符号位。
(3)当我们给赋值的字面值超过当前数据类型时就会直接报错。
(4)当发生算术运算时,若结果超过该类型所限制的范围,会自动发生截断,可以由以下代码进行测试 判断是发生了截断还是提升
public static void main(String[] args){
byte b1=1;
byte b2=127;//byte的最大取值就是127
b2+=b1;//若再加上1,打印结果为128,即发生提升,若为-128,则发生截断
System.out.println(b2);
{
(5)右移分为有符号右移(>>)与无符号右移(>>>),运算时会发生类型提升
(6)条件运算符(三目运算符) 表达式1 ?表达式2 :表达式4 不能独立存在,要么结果付给另一个值,要么直接打印出来
例:
(7)Java中 switch(参数),其中的参数可以是字符串,需要注意的是,不能作为参数的有
double,float,long,boolean 等四种。switch 与 if 的区别:switch里面不能是很复杂的表达式,if 里面可以
(8)要读入一个数时
(9)while(表达式) if(表达式) do{} while (表达式)这个表达式必须是boolean表达式
简单编程题
1.输出九九乘法表
public static void main1(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + " ");
}
System.out.println();
}
}
2.求两个数的最大公因数
public static void main2(String[] args){
Scanner scanner=new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = a % b;
while (c!=0){
a=b;
b=c;
c=a%b;
}
System.out.println(b);
}
3.求水仙花数
public static void main3(String[] args){
for (int i=1;i<99999;i++){
int count=0;
int tmp=i;
while (tmp!=0){
count++;
tmp/=10;
}
tmp=i;
int sum=0;
while (tmp!=0){
sum += Math.pow(tmp%10,count);
tmp/=10;
}
if(i==sum)
System.out.println(i);
}
}
4.任意输入一个数,输出其二进制有多少个1
public static void main(String[] args){
int n = 2;
int count = 0;
while (n!=0) {
n = n & (n - 1);
count++;
}
System.out.println(count);
}
//方案2.&1之后,右移1位,直到为0
public static void main(String[] args){
int count = 0;
int n=7;
while (n!=0){
if(0!=(n&1)) {
count++;
n = n >> 1;
}
}
System.out.println(count);
}
注意,若输入的数为-1,则将以上代码的右移改为无符号右移符>>> 即可
5.递归实现斐波那契数列
public static int Fib(int n){
if(n==1||n==2) {
return 1;
}
int f1=1;
int f2=1;
int f3=0;
for (int i=3;i<=n;i++) {
f3=f1+f2;
f1=f2;
f2=f3;
}
return f3;
}
//迭代实现斐波那契数列
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n= scanner.nextInt();
int num= Fib(n);
System.out.println(num);
}