各种思想

1,怎么从已有的项目入手。(以下的每一步,都必须做笔记,要细致到每一步的实现或者运用)
首先搭框架:
①了解各种配置文件,配置文件无非三大类:①系统所需要的路径配置,②数据库配置,③日志等文件配置。常见配置文件格式.properties或.yml
这个说明小技巧:服务器(linux)→配置→本地路径(windows),会默认配置C盘
因此有两种配置文件路径更改的的方式:一是,全改为本地环境,需要改动配置文件,需要“/”改为“//”。二是,利用默认(推荐使用),配置文件不用改动,创建路径就好利用,cmd命令“ mkdir 多路径”,例如:/apdir/webapp/wg_tante(linux下)→C:/apdir/webapp/wg_tantei(windows下)
路径配置上,但是如上面这样做会有坑,并不是所有的都可以利用规则可以转化,比如其他软件装在windows上就不能自动转,这时就需要配成windows路径。

②运用的技术,辅助软件,从应用那种数据库,数据库辅助工具的使用方法。
③管理项目的工具及应用
不明白业务的情况下:
①首先,需要了解前后台,怎么贯通的,运用了什么技术
②后台是怎么样的逻辑,大致利用了什么样的框架,以及实现过程。
③遇到BUG不要急,一步步Debug卡断点,去找到跟一遍,了解,框架运行的过程。
④一定要从前台跟到具体执行的sql处。
备注:
如何判断运行在本地或者服务器上:鼠标停放在任意可选模块上,取下面有地址,由此可以判断。

明白业务(熟悉上述条件下)
分析每一段代码或者调查什么东西,一定要从业务的角度出发(刚开始可能比较难);

巧:
①不常用的项目,左键选中项目,项目关闭/打开,点击控制关闭或打开

2,当点到class文件还得不到解释,这时你需要去提出好的问题,归结到某种框架的某一块点上。

java底层的各种坑
1,我们现在用的HttpServlet,其原型还是归结带servlet接口上,大致发展工程,大致经过四代的发展到现在

2,Integer范围在-128——127之间,越过的需要去底层,重新new一个地址给它,所以超过的会不相等。(反编译可以看出)

逻辑小知识
1,&&和&,||和|的区别,双符号的截断的意思,比如if (a !=1 && b != 1)如果a !=1不成立,那么后面的将不会再去判断

我在这里一直在记录各种思想,今天问老大一个问题:得到的解释,一脸懵逼。
前面一直强调一直点,了解问题,点到底层。什么叫底层?你有考虑string继承谁吗?比较过for each 和for 的区别吗?Httpservlet就是底层?为什么要一步步去解析底层?
答:最根本的来源叫底层。为什么要一步步去了解底层。只有当你了解一个东西的发展史,遇到问题时,你才能追根溯源。
老大的举例:
①String继承谁?(这里老大讲了一个观念,不要把什么都归结为底层,底层也是有原因的,想要学好,一定要追根求底,多去反编译看看源码)。
以图为证:
进一步深入Serializable:序列化的作用就是:为了保存在内存中的各种对象的状态(序列化),并且可以把保存的对象状态再读出来(反序列化),也有出于序列化很多时候是出于安全性传输。
出于安全性,spring采用单例模式。
在Spring中,bean可以被定义为两种模式:prototype(多例)和singleton(单例)
singleton(单例):只有一个共享的实例存在,所有对这个bean的请求都会返回这个唯一的实例。
prototype(多例):对这个bean的每次请求都会创建一个新的bean实例,类似于new。
Spring bean 默认是单例模式。
Comparable<String,里面有public int compareTo(T o);方法
CharSequence接口,有很多方法public String toString();int length();char charAt(int index);CharSequence subSequence(int start, int end);public default IntStream chars() (1.8才有)等方法 上面的since可以看到版本发展史。IntStream依然是继承,这里不在赘述。这个涉及到1.8更新的流和管道,函数式(lamda函数式编程问题)
在这里插入图片描述
但这里要说明一点String本身是不允许被继承的,是final对象。

②比较过for each 和for 的区别吗?
写了以例子给我们,反编译一看,才知道,本质上是没有for each,不过是迭代+while(it.hasCode()) it.next()的方式来进行循环操作。不过是java开发者把常用,很有用的封装成了模块。(由于反编译插件安装失败,暂不演示)

③ Httpservlet就是底层?不是在这之前还有还有好几个版本。
在这里插入图片描述
到这里是我们现在所认知的Httpservlet,这里面有
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
protected long getLastModified(HttpServletRequest req)
protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
private static Method[] getAllDeclaredMethods(Class<?> c)
protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
等等
进一步继承GenericServlet(implements是实现接口)
在这里插入图片描述
图中方法不全,只是举例。
在这里插入图片描述
进一步一层Servlet,这就是最底层,你再也点不动。
在这里插入图片描述
很显然ServletConfig是个接口,这里不再累述。

随着知识的增长,把握所有的知识,是不现实的,这个时候的我们就需要去一个大致逻辑------------------------------------思维导图

jdk1.8下的bin文件中有很多的.exe工具,典型的jmc.exe,jar.exe等;研究运行方式:拖入cmd中执行,可以看到运行规则。

最初的23中设计模式的理解。网上百度。
双色球的实现中,其中很重要的思想:定义一个boolean[] bool = new boolean[33];得到0-32的布尔值,默认false,通过这个值来做到去重
简单来说就是:

boolean[] bool = new boolean[33];
List list = new ArrayList<>();
Random random = new Random();
for(;;) {
	int inta = random.nextInt(33);
	if (!bool[inta]) {
		bool[inta] = true;
		list.add(inta ++ )
	}
	if(list.szie() == 6) break;
}
Collection.sort(list);
list.add(random.nextInt(16) + 1);

处理问题的思维:
1,自己看代码能是不是代码的问题,弄清楚问题原因。
2,百度,对于简单的问题,网上可能有了解决方式。
3,查看源码+官方API。理清自己的问题,写帮助类解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值