热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Javase基础语法篇

运算符&和&&、|和||的区别吗?&按位与操作只有对应的两个二进制数为1时,结果位才为11&111&000&100&00|按位或操作有一个为1的时候,结果位就为11|




运算符 &和&&、 |和||的区别吗?

& 按位与操作
只有对应的两个二进制数为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的数据类型分类


  • 基础数据类型:

四类八种字节数默认值封装类
整型(精确)byte1(byte)0Byte
整型(精确)short2(short)0Short
整型(精确)int(默认)40Integer
整型(精确)long80LLong
浮点型(不精确)float40.0fFloat
浮点型(不精确)double(默认)80.0dDouble
字符型char2\u0000(null)Character
布尔型boolean1falseBoolean

  • 引用数据类型:其他都是应用类型
  • 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 paths = new ArrayList<>();
getAllFilePaths(new File("G:\\网盘下载"), paths);
for (String path: paths){
System.out.println(path);
}
}
private static void getAllFilePaths(File filePath, List 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());
}
}
}


推荐阅读
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • Beetl是一款先进的Java模板引擎,以其丰富的功能、直观的语法、卓越的性能和易于维护的特点著称。它不仅适用于高响应需求的大型网站,也适合功能复杂的CMS管理系统,提供了一种全新的模板开发体验。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 本文详细介绍了如何在智能手机上将电话铃声恢复到原始状态,适用于各种品牌的智能手机。 ... [详细]
  • 精选10款Python框架助力并行与分布式机器学习
    随着神经网络模型的不断深化和复杂化,训练这些模型变得愈发具有挑战性,不仅需要处理大量的权重,还必须克服内存限制等问题。本文将介绍10款优秀的Python框架,帮助开发者高效地实现分布式和并行化的深度学习模型训练。 ... [详细]
author-avatar
mobiledu2502923007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有