以此文来警示自己。

大三要结束了。

我从大一下学期开始接触java,两年半了,期间有很努力的自学,也参与了一下项目,满以为自己的java基础应该不错,但今天在网上看了一个视频才发现自己学的是多么的“浅”,知道了自己的java基础还很差。写程序不是可以实现功能就可以了,还要考虑效率。或许定义一个变量只会多占用几个比特位,一个for循环只会多消耗几毫秒,但当一段段代码组成一个个庞大的系统时,弊端就显露出来了,就像视频里说的,我们写出来的项目只会是一个个12306。

或许是科班出身的我们被教的东西不够吧,有些东西还是得自己努力去探索的,即使是基础知识,也不容小觑,因为基础也不是像你想的你们的简单。

下面奉上看视频做的笔记,经验丰富的高手们肯定都知道,望勿喷。

package test;

import java.math.BigDecimal;

public class TestData {

	/**
* 数据类型 :基本数据类型 引用数据类型(自定义)
* 基本数据类型:byte short int long float double char boolean
* 字节 1 2 4 8 4 8 2
*
* float :32位(1+8+23) 符号位+幂指位+数值位
* double:64位(1+11+52)
*/ public static void main(String[] args) {
//给char型赋值有四种方法
char c1 = 'a'; //直接赋值
char c2 = 97; //ASCII码赋值
char c3 = '\u4e2d'; //unicode编码赋值 后面是16进制
char c4 = '\t'; //转义字符
System.out.println(c1+"&"+c2+"&"+c3+"&"+c4+"&"); //a&a&中& & //int型赋值
int n1 = 30; //直接赋值
int n2 = 0b11110; //二进制赋值 0b+ ||30=16+8+4+2 ||除2取余 15_0 7_1 3_1 1_1 0_1 -> 11110
int n3 = 0x1e; //16进制赋值 0x+ ||转二进制 00011110 转16进制 1E
int n4 = 036; //8进制赋值 0+ ||除8取余 3_6 0_3 36
System.out.println(n1+"|"+n2+"|"+n3+"|"+n4+"|"); //30|30|30|30|
//char+int+String 先做加法 再拼接
System.out.println('1'+1+"1"); //501 char型的1表示ASCII码为49 49+1+"1" = 501
//String+int+char 拼接再拼接
System.out.println("1"+1+'1'); //111
//char+char 做加法
System.out.println('1'+'1'); //98 49+49=98
//2.0-1.1
System.out.println(2.0-1.1); //0.8999999999999999
System.out.println(2.0f-1.1f); //0.1
/**
* double: 2.0转为2进制 10.0000000000000000(16位处截断)
* 1.1转为2进制 01.0001100110011001 (1二进制为1, 小数:0.1*2=0.2_0 0.2*2=0.4_0 0.4*2=0.8_0 0.8*2=1.6_1 0.6*2=1.2_1 0.2*2=0.4_0)
* 相减得0.1110011001100111 转为10进制-0.8999999999999999
* float 先按double计算,然后四舍五入为0.9f
* 解决方法:使用BigDecimal
*/ BigDecimal b1=new BigDecimal("2.0");
BigDecimal b2 = b1.subtract(new BigDecimal("1.1"));
System.out.println(b2); //0.9 } }
package test;
//运算符
public class TestOperator { public static void main(String[] args) {
//取模运算符 符号位取决于第一个数
System.out.println(5%3); //2
System.out.println(-5%3); //-2
System.out.println(5%-3); //2
System.out.println(-5%-3); //-2
System.out.println(2%2); //0
System.out.println(-2%2); //0 //非短路运算符[& | ]和短路运算符[&& ||]
int num = 5;
if(++num < 4 && num++ > 1)
System.out.println("qwer");
System.out.println(num);
//结果是:6
//短路运算符前面判断为false 后面的就不再执行了(对与运算来说,对或运算相反)
num = 5;
if(++num < 4 & num++ > 1)
System.out.println("qwer");
System.out.println(num);
//结果是7
//非短路运算符全执行 //按位运算符
//当一个正数%2的n次方时,等价于&(该2的n次方-1)
System.out.println((100&1)==100%2); //true
System.out.println((100&3)==100%4); //true
System.out.println((100&7)==100%8); //true
System.out.println((100&15)==100%16); //true
System.out.println((100&31)==100%32); //true //权限的实现 1:权限1 2:权限2 4:权限3 8:权限4
//以他们的和表示权限 如3=1+2 7=1+2+4 9=1+8
//用自己的权限&某一权限的代表数字 可得知自己有无该权限
System.out.println((9&1)==1); //true 表示有权限1
System.out.println((9&2)==2); //false
System.out.println((9&4)==4); //false
System.out.println((9&8)==8); //true // 在不借助第三块空间的条件下 交换两个数
//使用按位异或运算符
int a = 1;
int b = 2;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println(a+" "+b); //2 1
//加减法
a = 1;
b = 2;
a = a + b;
b = a - b;
a = a - b;
System.out.println(a+" "+b); //2 1 //不局限的利用for循环
//打印a-z
for(int i = 97;i<123;i++){
System.out.print((char)i);
}
//这样真的好吗? 看看下面的:
System.out.println();
for(char c='a';c<='z';c++){
System.out.print(c);
}
//第二种只利用char的16个位 第一种还需要利用int的32个位 } }

版权声明:本文为博主原创文章,未经博主允许不得转载。

我们的java基础到底有多差 一个视频引发的感想的更多相关文章

  1. 【Java基础】用LinkedList实现一个简单栈的功能

    栈的基本功能 栈的最基本功能是保障后进先出,然后在此基础上可以对在栈中的对象进行弹入弹出,此外,在弹出时,如果栈为空,则会报错,所以还需要提供获取当前栈大小的方法. 构造存储对象Student /** ...

  2. 【死磕 Java 基础】 — 自己动手实现一个 LRU

    大家好,我是大明哥,一个专注于[死磕 Java]系列创作的男人 个人网站:https://www.cmsblogs.com/.专注于 Java 优质系列文章分享,提供一站式 Java 学习资料 LRU ...

  3. java基础—继承题目:编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义其子类Fish

    编写一个Animal类,具有属性:种类:具有功能:吃.睡.定义其子类Fish package zhongqiuzuoye; public class Animal { //属性 private Str ...

  4. 【java基础】随手写的一个日期计算,新手可以看看

    随手写的一个例子, 只是练习下自己的代码布局以及思路.. 1. 先写下简单的测试 2. 根据常用的不用修改的变量抽取出来, 作为常量(常量的命名可能有点不规范,谅解~) 3. 方法的作用不一样, 抽取 ...

  5. java基础常见面试题,这是一篇超长的随笔!!!

    1. Java基础部分....................................................... 4 1.一个".java"源文件中是否可以包括 ...

  6. Java基础部分 2

    一. Java基础部分 2 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2 2.Java有没有goto? 2 3.说说&和&&am ...

  7. 【Spring学习】【Java基础回顾-数据类型】

    Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...

  8. Java基础(一):简介

    一.java基础语法: 一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作.下面简要介绍下类.对象.方法和实例变量的概念. 对象:对象是类的一个实例,有状态和行为.例如 ...

  9. 01 Java基础

    Java基础 01 Hello 随便新建一个文件夹,存放代码 新建一个Java文件 文件后缀名为.java Hello.java [注意点]系统可能没有显示文件后缀名,我们需要手动打开 编写代码  p ...

随机推荐

  1. WebStorm常用快捷键总结

    在使用WebStorm的过程中,常用快捷键整理: 1.  必备快捷键 Ctrl+/:注释当前行 Ctrl+Shift+/:当前位置插入注释 Ctrl+Alt+/:块注释,并Focus到首行,写注释说明 ...

  2. Idea(一) 安装与破解

    现在idea横行的时代,没用过idea都不好意思了,于是乎,我也下载感受下. 下载安装包和破解地址: 链接: https://pan.baidu.com/s/16OeiDw942JaPXKtc9Oz1 ...

  3. mongodb3.6 副本集(三)mongodb 如何做数据备灾

    前言 个人理解,副本集一个主要作用就是当Master库出现故障,其中的一个salve从库会被选举出来成为新的Master.框架图如下: 其中,选举者是不参与数据存储的,它的作用只是为了选举出新的Mas ...

  4. 我对IoC/DI的理解

    IoC IoC: Inversion of Control,控制反转, 控制权从应用程序转移到框架(如IoC容器),是框架共有特性 1.为什么需要IoC容器 1.1.应用程序主动控制对象的实例化及依赖 ...

  5. ORACLE数据库维护

    ORACLE数据库维护(转)----一篇关于oracle的不错的文章 1. ORACLE数据库启动与关闭   1.1 打开和关闭数据库 (手工)1.1.1 sqlplus连接   1.1.2 打开数据 ...

  6. springMVC 中的restful 架构风格

    RESTful架构 : 是一种设计的风格,并不是标准,只是提供了一组设计原则和约束条件,也是目前比较流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用. ...

  7. ACCA AI来袭会议笔记

    ACCA AI来袭会议笔记 Technology in Accounting 调研报告: http://cn.accaglobal.com/news/professional_report.html ...

  8. Django中的Python高级特性

    本小文的内容实际是作为<Pro Django>第二版第二章的读书笔记简单总结. 1.类的构建:元类,使用带元类的基类----这个特性的案例主要就是models.Model类,用这种方式高效 ...

  9. 使用Rapidxml读取xml文件

    现有xml文件如上,写在一个string中.需要获取节点上元素的类别和属性信息,并存储到结构体表中. 结构体如下: 得到的结果如下:

  10. 基于jQuery的AJAX实现三级联动菜单

    最近学习jQuery,所以就写了一个关于中国省市县/区的三级联动菜单,权当相互学习,相互促进,特此记录. 下面是嵌套js的html文件: <!DOCTYPE html> <html ...