代码编织梦想

一、操作符

1、算数操作符

基本的有:加减乘除余+-*/%          自增,自减    ++   --                         余,取余,取模    %

如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算 

如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算 
byte a = 1; 
byte b= 2; 
a+b -> int 类型

基础笔试面试题1

public class HelloWorld {
    public static void main(String[] args) {
        byte a = 1;
        byte b= 2;
        byte c = (byte) (a+b); //虽然a b都是byte类型,但是运算结果是int类型,需要进行强制转换
        int d = a+b;
    }
}

自增 自减操作符置前以及置后的区别

i++; 先取值,再运算 
++i; 先运算,再取值

基础笔试面试题2

public class HelloWorld {
    public static void main(String[] args) {
        int i = 5;
        System.out.println(i++); //输出5
        System.out.println(i);   //输出6
         
        int j = 5;
        System.out.println(++j); //输出6
        System.out.println(j);   //输出6
    }
}

基础笔试面试题3

结果为18 

public class HelloWorld {
    public static void main(String[] args) {
        int i = 1;
        int j = ++i + i++ + ++i + ++i + i++;
        //i值        2     3     4     5     6
        //取值      2     2     4     5     5
        System.out.println(j);
    }
}

练习-------BMI

import java.util.Scanner;

public class HelloWorld {
	 
    public static void method1() {
    	int i = 1;
    	int j = ++i + i++ + ++i + ++i + i++;
    	System.out.println(j);
    }
    public static void main(String[] args) {
		method1();
		
		Scanner s = new Scanner(System.in);
		System.out.println("请输入身高(m):");
		float height = s.nextFloat();
		System.out.println("请输入体重(kg):");
		float weight = s.nextFloat();
		float BMI = weight/(height*height);
		System.out.println("当前的BMI是:"+ BMI );
	}
}

2、关系操作符

比较两个变量之间的关系 

练习:判断两个值之间的关系syso("   " + (a>b));

import java.util.Scanner;
  
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        System.out.println("第一个整数:"+a);
        int b = s.nextInt();
        System.out.println("第二个整数:"+b);
         
        System.out.println("比较"+a+">"+b+":"+(a>b));
        System.out.println("比较"+a+">="+b+":"+(a>=b));
        System.out.println("比较"+a+"<"+b+":"+(a<b));
        System.out.println("比较"+a+"<="+b+":"+(a<=b));
        System.out.println("比较"+a+"=="+b+":"+(a==b));
        System.out.println("比较"+a+"!="+b+":"+(a!=b));
    }
}

3、逻辑操作符

逻辑运算符:&长路与    &&    |      ||     !取反         ^异或


无论长路与还是短路与
两边的运算单元都是布尔值
都为真时,才为真
任意为假,就为假
区别
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了


无论长路或还是短路或
两边的运算单元都是布尔值
都为假时,才为假
任意为真,就为真
区别
长路或 两侧都会被运算
短路或 只要第一个是true的,第二个就不进行运算了


取反! 
真变为假 
假变为真


异或^ 
不同,返回真 
相同,返回假


基础笔试面试题4

false   i=3

public class HelloWorld {
    public static void main(String[] args) {
        int i = 1;
        boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);
        //i值            2           3
        //表达式           false       true
        //              true    ^   true
        //                      false  
         
        System.out.println(b);
        System.out.println(i);
    }
}

4、位操作符

public class HelloWorld {
    public static void main(String[] args) {
        int i  =-10;
         
        //-10的二进制是11111111111111111111111111110110
        //第一位是1,即符号位,代表这是一个负数
        System.out.println(Integer.toBinaryString(i));
         
        //对于正数, 带符号右移 >> 会把所有的位右移,并在最前面补0
        //对于负数, 带符号右移 >> 会把所有的位右移,并在最前面补1
         
        //-10带符号右移1位,移动后前面补齐1
        //得到11111111111111111111111111111011
        //因为第一位是1,所以依然是一个负数,对应的十进制是-5
        int j = i>>1;
        System.out.println(Integer.toBinaryString(j));
        System.out.println(j);
         
        //-10无符号向右移1位,符号位也会向右移,第一位就变成了0
        //得到01111111111111111111111111111011,对应的十进制是2147483643
        int k = i>>>1;
        System.out.println(Integer.toBinaryString(k));     
         
        System.out.println(k);
    }
     
}

5、赋值运算符

赋值操作的操作顺序是从右到左      (先运算,后赋值)

+=即自加
i+=2;
等同于
i=i+2;

3           int i = 1; i+=++i;即1+2=3

6、三元运算符

         int i;
         int j = 6;
         Scanner scanner=new Scanner(System.in);
         System.out.println("今天是周几?");
         i=scanner.nextInt();        
         String k = i < j ? "今天是工作日" :"今天是周末";
  
         System.out.println(k);

7、scanner

基础笔试面试题5

使用scanner读取字符串   s.nextLine();

import java.util.Scanner;
  
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String a = s.nextLine();
        System.out.println("读取的字符串是:"+a);
    }
}

基础笔试面试题6

读取了整数后,接着读取字符串

需要注意的是,如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读取回车换行"\r\n".

所以,如果在业务上需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串

import java.util.Scanner;
   
public class HelloWorld {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        System.out.println("读取的整数是"+ i);
        String rn = s.nextLine();
        String a = s.nextLine();
        System.out.println("读取的字符串是:"+a);
    }
}

二、控制流程

switch可以使用byte,short,int,char,String,enum

注: 每个表达式结束,都应该有一个break;
注: String在Java1.7之前是不支持的, Java从1.7开始支持switch用String的,编译后是把String转化为hash值,其实还是整数
注: enum是枚举类型

基础笔试面试题7

阶乘

import java.util.Scancer;
public class Rrr
{
  public static void main(String [] args)
  {
    Scancer s=new Scancer(System.in);
	System.out.println("请输入一个整数:");
	int a =s.nextint();
	int b =1;
	while (1<a)
	{
	  b=b*a
      a--
	}
	System.out.println("阶乘是:"+b);
}
import java.util.Scanner;

public class Hero {
    public static void main(String[] args) {
       System.out.println("请输入一个整数:");
        Scanner s=new Scanner(System.in);
        int n=s.nextInt();
        int m=n;
        do{
            n--;
            m=m*n;
        }while(n>1);
        System.out.println(m);

        }
    }
public class JieChengTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        System.out.println(method(i));
    }
    public static int method(int i){
        if (i == 1){
            return 1;
        }
            return i*method(i-1);
    }
}

continue 

继续下一次循环

continue:(只打印单数)

public class HelloWorld {
    public static void main(String[] args) {
          
        //打印单数    
        for (int j = 0; j < 10; j++) {
            if(0==j%2) 
                continue; //如果是双数,后面的代码不执行,直接进行下一次循环
             
            System.out.println(j);
        }
    }
}

break只能结束当前循环

基础笔试面试题8

使用boolean变量结束外部循环

public class HelloWorld {
    public static void main(String[] args) {
        boolean breakout = false; //是否终止外部循环的标记
        for (int i = 0; i < 10; i++) {
 
            for (int j = 0; j < 10; j++) {
                System.out.println(i + ":" + j);
                if (0 == j % 2) {
                    breakout = true; //终止外部循环的标记设置为true
                    break;
                }
            }
            if (breakout) //判断是否终止外部循环
                break;
        }
 
    }
}

使用标签结束外部循环

public class HelloWorld {
    public static void main(String[] args) {
          
        //打印单数    
        outloop: //outloop这个标示是可以自定义的比如outloop1,ol2,out5
        for (int i = 0; i < 10; i++) {
             
            for (int j = 0; j < 10; j++) {
                System.out.println(i+":"+j);
                if(0==j%2) 
                    break outloop; //如果是双数,结束外部循环
            }
             
        }
         
    }
}

 

 

待练习

        黄金分割点:

寻找某两个数相除,其结果 离黄金分割点 0.618最近

分母和分子不能同时为偶数
分母和分子 取值范围在[1-20]

       水仙花数:

水仙花数定义:
1. 一定是3位数
2. 每一位的立方,加起来恰好是这个数本身,比如153=1*1*1+5*5*5+3*3*3

寻找所有的水仙花数

        小学算术题:多层循环嵌套解决

ç»ä¹ -å°å­¦ç®æ¯é¢

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/DH2264664169/article/details/85123987

java基础面试题整理_java程序员-张凯的博客-爱代码爱编程_java基础面试题

面向对象的三个特征 封装,继承,多态.这个应该是人人皆知.有时候也会加上抽象. 多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用).主要有以下优点: 可替换性:多态对已存在代码具有可替换性.可扩充性:增加新的子类不影响已经存在的类结构.接口性:多态是超类通过方法签名,向子类

java基础面试题50题_meetbetterhc的博客-爱代码爱编程_java基础面试

 1,""空字符串的作用 package com.neuedu.nineteen; public class Test { public static void main(String[] args) { String s=""; for (char i = 'a'; i < 'd'; i++) {

Java面试题大全(2020版)-爱代码爱编程

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的。 关注博主的微信公众号:Java团长,然后回复“面试手册”即可获取~ 一、Java 基础 1. JDK 和 JRE 有什么

Java基础知识面试题-爱代码爱编程

主题链接Java基础知识面试题Java集合容器面试题Java并发编程面试题Java底层知识面试题Java常用框架面试题计算机网络面试题数据库面试题RabbitMQ面试题Redis面试题Elasticsearch面试题Zookeeper面试题系统设计面试题 文章目录 面向对象什么是面向对象?什么是面向过程?面向对象的三大基本特征是什么?面向对象的五大基

Java面试题大全(2021版)-爱代码爱编程

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 博主已将以下这些面试题整理成了一个Java面试手册,是PDF版的。 关注博主的微信公众号:Java团长,然后回复“面试手册”即可获取~ 一、Java基础知识面试题 1、Java概述 ①.

京东java面试题、笔试题(含答案)-爱代码爱编程

其他互联网大厂面试题 1:阿里巴巴Java面试题 2:阿里云Java面试题-实习生岗 3:腾讯Java面试题-高级 4:字节跳动Java面试题 5:字节跳动Java面试题-大数据方向 6:百度Java面试题 7

【2022最新java面试宝典】—— springboot面试题(44道含答案)-爱代码爱编程

目录 1. 什么是 Spring Boot?2. 为什么要用SpringBoot3. SpringBoot与SpringCloud 区别4. Spring Boot 有哪些优点?5. Spring Boot 的

【2022最新java面试宝典】—— java基础知识面试题(91道含答案)_java集合面试题-爱代码爱编程

目录 一、Java概述1. 何为编程2. 什么是Java3. jdk1.5之后的三大版本4. Jdk和Jre和JVM的区别5. 什么是跨平台性?原理是什么6. Java语言有哪些特点7. 什么是字节码?采用字节