我们的java基础到底有多差 一个视频引发的感想

       以此文来警示自己。 

       大三要结束了。

       我从大一下学期开始接触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个位

	}

}


jsf和jpa 期末大作业 <%@ page language="java" import="java.util.*,dao.*,entitybean.*" pageEncoding="utf-8"%> <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <f:view> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <style type="text/css"> </style> </head> <body > <div style="position:absolute; width:100%; height:100%; z-index:-1;background-color:#2894FF;background-repeat : no-repeat;background-size:90% 90%;opacity:1"> <img src="image/re2.jpg"> <h3>人事信息管理</h3> <p style="text-align:center"> <h:outputLink value="/faces/add.jsp">添加一条</h:outputLink> <h:form> <h:dataTable value="#{loginBean.persons}" var="person" border="5" cellpadding="5" cellspacing="2"> <h:column> <f:facet name="header"> <h:outputText id="headerText1" value="职工号"/> </f:facet> <h:outputText value="#{person.id}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText2" value="姓名"/> </f:facet> <h:outputText value="#{person.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText3" value="性别"/> </f:facet> <h:outputText value="#{person.gender}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText4" value="年龄"/> </f:facet> <h:outputText value="#{person.age}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText5" value="国籍"/> </f:facet> <h:outputText value="#{person.address_country}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText6" value="详细地址"/> </f:facet> <h:outputText value="#{person.address_detail}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText7" value="邮编"/> </f:facet> <h:outputText value="#{person.address_zip}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText8" value="入职时间"/> </f:facet> <h:outputText value="#{person.entry_time}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText9" value="所属部门"/> </f:facet> <h:outputText value="#{person.depertment}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText10" value="职位"/> </f:facet> <h:outputText value="#{person.position}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText id="headerText11" value="工资"/> </f:facet> <h:outputText value="#{person.salary}"/> </h:column> <h:column> <h:outputLink value="faces/edit.jsp" > <h:outputText value="编辑"></h:outputText> <f:param name="p_id" value="#{person.id}"/> </h:outputLink> </h:column> <h:column> <h:outputLink value="delete.jsp" > <h:outputText value="删除"></h:outputText> <f:param name="p_id" value="#{person.id}"/> </h:outputLink> </h:column> </h:dataTable> </h:form> </p> <img src="image/re.jpg"> </div> </body> </html> </f:view>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光光-Leo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值