Javase基础语法篇
2021/8/7 20:08:01
本文主要是介绍Javase基础语法篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
运算符 &和&&、 |和||的区别吗?
& 按位与操作 只有对应的两个二进制数为1时,结果位才为1 1&1=1 1&0=0 0&1=0 0&0=0 | 按位或操作 有一个为1的时候,结果位就为1 1|1=1 1|0=1 0|1=1 0|0=0
& 和 && 都可以实现 和 这个功能 区别:& 两边都运算,⽽而 && 先算 && 左侧,若左侧为false 那么右侧就不不运算,判断语句句中推荐使⽤用 &&,效率更更⾼高 | 和 || 和上⾯面类似 区别:||只要满⾜足第一个条件,后⾯面的条件就不不再判断,⽽而|要对所有的条件进⾏行行判断 把&&和||称之为短路路运算符
用最有效率的方法计算2乘以8
原理:将一个数左移n位,相当于乘以2的n次方,位运算是CPU直接支持的,所以效率高 答案:2<<3 常见的JDK源码里面HashMap的默认容量16 int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 直接是二进制操作了了,表示1左移4位,变成10000,转为10进制也就是16, 直接以二进制形式去运⾏行行, 效率更更⾼高
写个方法,传递两个非0的int数值进去,实现变量量交换的方式,有几种方式?
-
方式一
public static void swag(int a, int b) { System.out.println("a="+a+",b="+b); a = a + b; b = a - b; a = a - b; System.out.println("a="+a+",b="+b); }
-
方式二 异或运算(一个数与另一个数异或两次是其自身,一个数和自身异或结果是0)
public static void swap2(int a, int b) { System.out.println("a=" + a + ",b=" + b); a = a ^ b; //a1 = a^b b = b ^ a; // b = b^a^b 此处a与b异或两次,最终结果是a a = a ^ b; // a = a1^b = a^b^a 此处b与a异或两次,最终结果是b System.out.println("a=" + a + ",b=" + b); }
javase基础语法篇之类型
简介:java数据类型花费
java的数据类型分类
- 基础数据类型:
四类 | 八种 | 字节数 | 默认值 | 封装类 |
---|---|---|---|---|
整型(精确) | byte | 1 | (byte)0 | Byte |
整型(精确) | short | 2 | (short)0 | Short |
整型(精确) | int(默认) | 4 | 0 | Integer |
整型(精确) | long | 8 | 0L | Long |
浮点型(不精确) | float | 4 | 0.0f | Float |
浮点型(不精确) | double(默认) | 8 | 0.0d | Double |
字符型 | char | 2 | \u0000(null) | Character |
布尔型 | boolean | 1 | false | Boolean |
- 引用数据类型:其他都是应用类型
- String和Enum分别是什么类型:引用类型
运算
定义变量 int i = 5; return i++; 和return ++i; 返回结果是什么 答:分别是6 、 5
==和equals的区别
- 基本数据类型比较 要用==判断是否相等
- 引用数据类型: ==比较的是内存地址是否一样,不同对象的内存地址不一样,equals比较的是具体的内容,也可以让开发者去定义什么条件去判断两个对象是否一样
try-catch-finall执行顺序
下面代码 的try-catch-finally语句句,try里面有个return, finally里面也有个return,结果会返回什么?为什么
public static int test1() { int a = 1; try { System.out.println(a / 0); a = 2; } catch (ArithmeticException e) { a = 3; return a; } finally { a = 4; } return a; } public static int test2() { int a = 1; try { System.out.println(a / 0); a = 2; } catch (ArithmeticException e) { a = 3; return a; } finally { a = 4; return a; } }
解答: 在执行try、catch中的return之前一定会执行finally中的代码(如果finally存在),如果finally中有return语句,就会直接执行finally中的return方法,所以finally中的return语句一定会被执行的 执行流程:finally执行前的代码里面有包含return,则会先确定return返回值,然后再执行c'sfinally的代码,最后再执行return
try-with-resource
有了解新版的JDK处理IO流吗?编写下基础代码, 从⼀个txt⽂文本里面,拷贝里面的内容到另外一个txt文本里面
JDK7之后的写法,JDK9又进行了改良,但是变化不大,记住下面的写法即可 需要关闭的资源只要实现了java.lang.AutoCloseable,就可以⾃自动被关闭 try()里面可以定义多个资源,它们的关闭顺序是最后在try()定义的资源先关闭
try ( FileInputStream fis = new FileInputStream("/Users/xdclass/Desktop/test.txt"); BufferedInputStream bis = new BufferedInputStream(fis); FileOutputStream fos = new FileOutputStream("/Users/xdclass/Desktop/copy.txt"); BufferedOutputStream bos = new BufferedOutputStream(fos); ) { int size; byte[] buf = new byte[1024]; while ((size = bis.read(buf)) != -1) { bos.write(buf, 0, size); } } catch (Exception e) { e.printStackTrace(); }
文件API和递归考察
代码编写需求: 找出某目录下的所有子目录以及子文件并打印到控制台上
public static void main(String[] args) { //找出某目录下的所有子目录以及子文件并打印到控制台上 List<String> paths = new ArrayList<>(); getAllFilePaths(new File("G:\\网盘下载"), paths); for (String path: paths){ System.out.println(path); } } private static void getAllFilePaths(File filePath, List<String> paths) { //把该目标所有的目录/文件列出来 File[] files = filePath.listFiles(); if (files == null) { return; } for (File f : files) { //如果是一个目录 if (f.isDirectory()) { paths.add(f.getPath()); getAllFilePaths(f, paths); } else { paths.add(f.getPath()); } } }
这篇关于Javase基础语法篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27本地多文件上传的简单教程
- 2024-11-27低代码开发:初学者的简单教程
- 2024-11-27如何轻松掌握拖动排序功能
- 2024-11-27JWT入门教程:从零开始理解与实现
- 2024-11-27安能物流 All in TiDB 背后的故事与成果
- 2024-11-27低代码开发入门教程:轻松上手指南
- 2024-11-27如何轻松入门低代码应用开发
- 2024-11-27ESLint开发入门教程:从零开始使用ESLint
- 2024-11-27Npm 发布和配置入门指南
- 2024-11-27低代码应用课程:新手入门指南